设置 HLS 分段时间



我正在通过管道将处理后的视频从 openCV 传递到 ffmpeg,这是代码

./OpenCV & 
 tail -n +0 -f out.avi  | ffmpeg -i pipe:0  -hls_time 1 -hls_list_size 0 -hls_wrap 10 -hls_segment_filename '%03d.ts' stream.m3u8 

我的问题是输出.ts文件没有在统一的持续时间内,它们从一个文件到另一个文件。

这些大多是长,比如 60 秒。这意味着连接客户端必须等待第一个流完成,然后才能创建播放列表文件 (.m3u8( 文件。因此,在本例中,它们比实时视频晚 60 秒左右,如果下一个 .ts 文件较大,则流式传输将停止,直到完成。如果客户端尝试在创建下一个 .ts 文件之前播放,则会播放第一个 .ts 文件。

openCV 的帧速率为每秒 1 帧。

tail 将 openCV 的输出文件称为 (out.avi( 更改为 stdout。

任何帮助都会很棒。

我知道

我在回答我自己的问题,但我更改了下面的代码

./OpenCV & 
 tail -n +0 -f out.avi  | ffmpeg -i pipe:0  -hls_time 1 -hls_list_size 0 -hls_wrap 10 -hls_segment_filename '%03d.ts' stream.m3u8 `

./OpenCV & 
tail -n +0 -f out.avi  | ffmpeg -i pipe:0 -f hls -g 2 -hls_time 2 -hls_list_size 0 -hls_wrap 10 -hls_segment_filename '%03d.ts' stream.m3u8 `

似乎已经做到了。

相关内容

  • 没有找到相关文章

最新更新