FFMPEG将多个音频输入文件映射到1个单个图像文件,以便创建多个视频输出文件

时间:2019-02-14 19:20:39

标签: ffmpeg command android-ffmpeg php-ffmpeg

我正在尝试在ffmpeg中将多个输出文件映射到多个输入,但是不是将每个输入映射到一个唯一的输出,而是将第一个输入映射到第一个视频,然后再也不会创建下一个视频,我会在下面准确描述我要实现的目标,

我需要:

  1. 创建多个视频输出文件
  2. 来自多个音频输入文件
  3. 它们都使用相同的一个公共映像文件来创建 视频

我将在下面发布命令,非常感谢您的帮助

right

1 个答案:

答案 0 :(得分:0)

基本命令

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

视频仅被过滤和编码一次,每个输出流都将其复制。