【问题标题】:FFMPEG map multiple audio input files to 1 single image file in order to create multiple video output filesFFMPEG 将多个音频输入文件映射到 1 个单个图像文件,以便创建多个视频输出文件
【发布时间】:2019-07-08 21:47:39
【问题描述】:
我试图将 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
command
android-ffmpeg
ffmpeg-php
【解决方案1】:
基本命令
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
视频在每次输出时过滤和编码一次。
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
视频只被过滤和编码一次,每个输出流都会复制它。