ffmpeg同时输出到多个文件

rog*_*ack 9 ffmpeg

ffmpeg需要什么格式/语法才能将相同的输入输出到几个不同的"输出"文件?例如不同的格式/不同的比特率?它是否支持输出的并行性?

M K*_*ice 10

ffmpeg 文档已经更新了更多关于此的信息,选项取决于您使用的 ffmpeg 版本:http : //ffmpeg.org/trac/ffmpeg/wiki/Creating%20multiple%20outputs


Dmi*_*sky 5

FFMpeg 文档中,FFmpeg写入任意数量的输出“文件”

只需确保每个输出文件(或流)前面都有正确的输出选项。


Pat*_*ckz 5

我用

ffmpeg -f lavfi -re -i 'life=s=300x200:mold=10:r=25:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800:flags=16' \
-f lavfi -re -i sine=frequency=1000:sample_rate=44100 -pix_fmt yuv420p \
-c:v libx264 -b:v 1000k -g 30 -keyint_min 60 -profile:v baseline -preset veryfast -c:a aac -b:a 96k  \
-f flv "rtmp://yourname.com:1935/live/stream1" \
-f flv "rtmp://yourname.com:1935/live/stream2" \
-f flv "rtmp://yourname.com:1935/live/stream3" \
Run Code Online (Sandbox Code Playgroud)

  • 使用 [tee muxer](https://ffmpeg.org/ffmpeg-formats.html#tee),这样您只需编码一次,而不是三次。 (5认同)

rog*_*ack 2

基于http://sonnati.wordpress.com/2011/08/30/ffmpeg-\xe2\x80\x93-the-swiss-army-knife-of-internet-streaming-\xe2\x80\x93-part- ​iv/ 和http://ffmpeg-users.933282.n4.nabble.com/Multiple-output-files-td2076623.html

\n\n
ffmpeg -re -i rtmp://server/live/high_FMLE_stream -acodec copy -vcodec x264lib -s 640\xc3\x97360 -b 500k -vpre medium -vpre baseline rtmp://server/live/baseline_500k -acodec copy -vcodec x264lib -s 480\xc3\x97272 -b 300k -vpre medium -vpre baseline rtmp://server/live/baseline_300k -acodec copy -vcodec x264lib -s 320\xc3\x97200 -b 150k -vpre medium -vpre baseline rtmp://server/live/baseline_150k -acodec libfaac -vn -ab 48k rtmp://server/live/audio_only_AAC_48k\n
Run Code Online (Sandbox Code Playgroud)\n\n

或者您可以将输出传输到“tee”并将其发送到“X”其他进程以实际进行编码,例如

\n\n

ffmpeg -i 输入 - | 球座 ...

\n\n

这可能会节省CPU,因为它可能会启用更多的输出并行性,否则这显然是不可用的

\n\n

请参阅http://ffmpeg.org/trac/ffmpeg/wiki/Creating%20multiple%20outputs此处

\n

  • 这已经很过时了。没有“x264lib”编码器,并且“-vpre”很久以前就已被弃用。单独使用“-b”是不明确的,不应使用。 (2认同)