我正在对来自red5服务器的rtmp流进行转码,以便在iphone或ipad设备上进行直播。我从git repo构建了最新的m3u8版本,使用内置的segmenter来创建.ts文件和ffmpeg播放列表文件:
ffmpeg -probesize 50k -i "rtmp://localhost/oflaDemo/red5StreamDemo live=1" \
-c:v libx264 -b:v 128k -vpre ipod320 -flags -global_header -map 0 \
-f segment -segment_time 3 -segment_list foo.m3u8 -segment_list_flags +live \
-segment_list_type m3u8 -segment_list_size 5 -segment_format mpegts foo%d.ts这很好用,但我不能得到小于大约12秒的段大小,即使设置为3 (-segment_time 3)。这似乎是由libx264 vcodec引起的。我是不是丢了什么旗子?
顺便说一下,您可以通过启动red5 SimpleBroadcaster example来简单地成功运行上面的ffmpeg命令。
发布于 2013-02-01 11:48:50
我怀疑这是因为GOP的规模。segmenter需要I-frame边界才能创建分段。
ffmpeg -probesize 50k -i "rtmp://localhost/oflaDemo/red5StreamDemo live=1" \ -c:v libx264 -b:v 128k -g 90 -vpre ipod320 -flags -global_header -map 0 \ -f segment -segment_time 3 -segment_list foo.m3u8 -segment_list_flags +live \ -segment_list_type m3u8 -segment_list_size 5 -segment_format mpegts foo%d.ts
添加了-g 90。可能会有帮助。
https://stackoverflow.com/questions/14637976
复制相似问题