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