Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.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下用FFMPEG覆盖TS流文件_Linux_File_Terminal_Ffmpeg_Overwrite - Fatal编程技术网

Linux下用FFMPEG覆盖TS流文件

Linux下用FFMPEG覆盖TS流文件,linux,file,terminal,ffmpeg,overwrite,Linux,File,Terminal,Ffmpeg,Overwrite,我正在尝试将rtmp流转换为m3u8流。为了达到这个目标,我使用FFMPEG。现在,转换和下载没有问题。但是,它编写了大量的.ts文件,如channel0000.ts、channel0001.ts、channel0002.ts。每10秒创建一个ts文件。在这一点上,我想要一个ts文件。换句话说,我需要重写,因为我不想只存储最后10秒所需的所有流。当我尝试在同一个文件上写入时,会出现以下错误: Invalid segment filename template 'channel.ts' Could

我正在尝试将rtmp流转换为m3u8流。为了达到这个目标,我使用FFMPEG。现在,转换和下载没有问题。但是,它编写了大量的.ts文件,如channel0000.ts、channel0001.ts、channel0002.ts。每10秒创建一个ts文件。在这一点上,我想要一个ts文件。换句话说,我需要重写,因为我不想只存储最后10秒所需的所有流。当我尝试在同一个文件上写入时,会出现以下错误:

Invalid segment filename template 'channel.ts'
Could not write header for output file #0 (incorrect codec parameters ?):   Invalid argumentStream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Last message repeated 1 times
这是我的FFMPEG命令

ffmpeg -loglevel quiet -i rtmp://example -c:v libx264 -profile:v baseline -level 3.1 -c:a aac -strict experimental -f mpegts - | ffmpeg -i - -c copy -map 0 -f segment -segment_list channel.m3u8 -segment_format mpegts -segment_time 10 channel%04d.ts

有什么建议吗?

在FFMPEG文档中,我找到了“分段换行”选项。添加此选项时,文件将写入循环中。在我的例子中,我添加了“-segment\u wrap 1”命令部分,它现在只写一个文件

不需要管道,您可以直接输出活动HLS。请参阅
hls
muxer。