1

我正在对来自 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 命令。

4

1 回答 1

2

我怀疑这是因为共和党的规模。分段器需要 I 帧边界才能创建分段。

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. 可能会有所帮助。

于 2013-02-01T03:48:49.873 回答