HLS video segmenting complications. How to create a transport stream with ffmpeg
Posted
by
Agzam
on Super User
See other posts from Super User
or by Agzam
Published on 2012-06-19T17:09:49Z
Indexed on
2012/06/20
3:18 UTC
Read the original article
Hit count: 558
I have h264 videos, and currently we're using Apple's HTTP Video Streaming tools and mediafilesegmenter to segment these files. What I need to do is to switch to alternative segmenter based on this very popular open-sourced segmenter
The problem is that this segmenter does not just take any video, but takes only MPEG-TS videos. So I have to convert my h264 videos to TS first.
I can do that with ffmpeg. I'm using this:
ffmpeg -i encoded.mp4 -vcodec h264 -i encoded.mp4 -sameq -acodec aac -strict experimental -f mpegts output.ts
But this creates fairly larger output. And the reason is that Apple's segmenter keeps the same codec - AVC and the same audio codec - AAC, whereas ffmpeg changes video format to MPEG Video.
The question is: can I somehow keep the same AVC video codec and still convert video to a transport stream?
So my goal is to keep the same video quality and same video codecs as Apple's medifilesegmenter does.
UPD: Okay... it seems that ffmpeg CAN split videos into segments:
ffmpeg -i encoded.mp4 -c copy -map 0 -vbsf h264_mp4toannexb -f segment -segment_time 10 -segment_list test.m3u8 -segment_format mpegts segment%d.ts
That's still has one problem: it doesn't create http live streaming index file. (-segment_list creates a file with list of segments, but it doesn't look like HLS index). So, you still have to create index file
© Super User or respective owner