ffmpeg同时输出到多个文件

时间:2012-08-20 15:59:08

标签: ffmpeg

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

6 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:4)

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

答案 2 :(得分:1)

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

ffmpeg -re -i rtmp://server/live/high_FMLE_stream -acodec copy -vcodec x264lib -s 640×360 -b 500k -vpre medium -vpre baseline rtmp://server/live/baseline_500k -acodec copy -vcodec x264lib -s 480×272 -b 300k -vpre medium -vpre baseline rtmp://server/live/baseline_300k -acodec copy -vcodec x264lib -s 320×200 -b 150k -vpre medium -vpre baseline rtmp://server/live/baseline_150k -acodec libfaac -vn -ab 48k rtmp://server/live/audio_only_AAC_48k

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

ffmpeg -i input - |发球......

可能会保存cpu,因为它可能会启用更多的输出并行性,这显然是不可用的

请参阅http://ffmpeg.org/trac/ffmpeg/wiki/Creating%20multiple%20outputshere

答案 3 :(得分:1)

是否有任何理由不能只运行ffmpeg的多个实例?我对此有很好的结果......

一般来说,我所做的就是在文件上运行ffmpeg一次,以使其符合基本标准(比如更高质量的h.264 mp4文件)的排序如果您的来源文件有任何问题,请确保您的其他工作能够更快地运行,因为它们将在第一次传递中被清除

然后使用新的来源/输入文件来运行x个ffmpeg个工作,例如 bash ......

您看到“...”的位置就是您放置所有编码选项的位置。

# create 'base' file

ffmpeg -loglevel error -er 4 -i $INPUT_FILE ... INPUT.mp4 >> $LOG_FILE 2>&1

# the command above will run and then move to start 3 background jobs
# text output will be sent to a log file

echo "base file done!"

# note & at the end to send job to the background

ffmpeg ... -i INPUT.mp4 ... FILENAME1.mp4 ... >/dev/null 2>&1 &
ffmpeg ... -i INPUT.mp4 ... FILENAME2.mp4 ... >/dev/null 2>&1 &
ffmpeg ... -i INPUT.mp4 ... FILENAME3.mp4 ... >/dev/null 2>&1 &

# wait until you have no more background jobs running

wait > 0
echo "done!"

每个后台作业将并行运行,并且(基本上)在您的cpus上进行平衡,因此您可以最大化每个核心。

答案 4 :(得分:1)

我已经这样做了

ffmpeg -re -i nameoffile.mp4 -vcodec libx264 -c:a aac -b:a 160k -ar 44100 -strict -2 -f flv  \
-f flv rtmp://rtmp.1.com/code \
-f flv rtmp://rtmp.2.com/code \
-f flv rtmp://rtmp.3.com/code \
-f flv rtmp://rtmp.4.com/code \
-f flv rtmp://rtmp.5.com/code \

但并没有像我期望的那样完全正常工作,并且正在使用 nginx 重新播放

答案 5 :(得分:0)

我使用

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" \