Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 设置HLS段时间_Linux_Bash_Opencv_Ffmpeg_Http Live Streaming - Fatal编程技术网

Linux 设置HLS段时间

Linux 设置HLS段时间,linux,bash,opencv,ffmpeg,http-live-streaming,Linux,Bash,Opencv,Ffmpeg,Http Live Streaming,我正在通过管道将经过处理的视频从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秒。这意味着连接客户端必须等待

我正在通过管道将经过处理的视频从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)更改为标准输出


任何帮助都会很好。

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

./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 `