我正在对来自 red5 服务器的 rtmp 流进行转码,以用于在 iphone 或 ipad 设备上进行直播。我使用内置分段器从 git repo 构建了最新的 ffmpeg 版本,以使用以下内容创建 .ts 文件和 m3u8 播放列表文件:
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
这工作正常,但即使设置为 3(-segment_time 3),我也无法获得小于约 12 秒的段大小。它似乎是由 libx264 vcodec 引起的。我错过了任何标志吗?
顺便说一句,您可以通过启动 red5 SimpleBroadcaster 示例来成功运行上面的 ffmpeg 命令。