我正在尝试将 ffmpeg 中的多个输出文件映射到多个输入,但是不是每个输入映射到一个唯一的输出,而是我将第一个输入映射到第一个视频,然后根本不会创建下一个视频,我将准确描述什么我正在努力实现以下目标,
我需要:
视频
我将在下面发布我的命令,任何帮助将不胜感激谢谢
-y -i input1.mp3 -i input2.mp3 -f image2 -loop 1 -r 2 -i imagefile.png -shortest -c:a aac -c:v mpeg4 -crf 18 -preset veryfast -movflags faststart -map 0 output1.mp4 -map1 output2.mp4
最佳答案
基本命令
ffmpeg -i input1.mp3 -i input2.mp3 -loop 1 -framerate 10 -i imagefile.png -map 2:v -map 0:a -vf format=yuv420p -shortest output1.mp4 -map 2:v -map 1:a -vf format=yuv420p -shortest output2.mp4
每个输出对视频进行一次过滤和编码。
与 split filter
ffmpeg -i input1.mp3 -i input2.mp3 -loop 1 -framerate 10 -i imagefile.png -filter_complex "[2:v]format=yuv420p,split=outputs=2[v0][v1]" -map "[v0] -map 0:a -shortest -movflags +faststart output1.mp4 -map "[v1]" -map 1:a -shortest -movflags +faststart output2.mp4
视频总共过滤一次,并为每个输出单独编码。
管道
ffmpeg -y -v error -loop 1 -framerate 10 -i imagefile.png -filter_complex "[0:v]format=yuv420p[v]" -map "[v]" -c:v libx264 -f nut - | ffmpeg -y -i - -i input1.mp3 -i input2.mp3 -map 0:v -map 1:a -c:v copy -shortest -movflags +faststart output1.mp4 -map 0:v -map 2:a -c:v copy -shortest -movflags +faststart output2.mp4
视频只被过滤和编码一次,每个输出流都会复制它。
关于FFMPEG 将多个音频输入文件映射到 1 个单个图像文件,以便创建多个视频输出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54697657/