使用 ffmpeg 将流分段并转储为不同的输出文件格式

Segment stream and dump to different output file formats with ffmpeg

我正在尝试将相同的数据流分割成两种文件格式(mp4 和 ts),每次使用 ffmpeg.Dump 分割成一种文件格式就可以了:

ffmpeg -loglevel panic -i /dev/dvb/adapter0/dvr0 -f segment -segment_time 240 "outf-%3d.ts"

ffmpeg -loglevel panic -i /dev/dvb/adapter0/dvr0 -f segment -segment_time 240 segment_format mp4 "outf-%3d.mp4"

如何将分段流同时转储到 outf.ts 和 outf.mp4(在同一个 ffmpeg 命令中)?

如果您想保留默认编码器选择 - 用于 TS 的 mpeg2video 和 mp2 以及用于 MP4 的 H264 和 AAC,请使用

ffmpeg -loglevel panic -i /dev/dvb/adapter0/dvr0 \
       -f segment -segment_time 240 "outf-%3d.ts" \
       -f segment -segment_time 240 "outf-%3d.mp4"

如果只想编码一次,使用

ffmpeg -loglevel panic -i /dev/dvb/adapter0/dvr0 \
       -map 0:v? -map 0:a? -c:v libx264 -c:a aac
       -f tee \ 
       "[f=segment:segment_time=240]outf-%3d.ts| \
        [f=segment:segment_time=240]outf-%3d.mp4"