我正在使用以下 ffmpeg 命令从单个图像生成(15 秒)视频
ffmpeg -loop 1 -i image.png -c:v libx264 -t 15 -pix_fmt yuv420p -vf scale=1280:720 out.mp4
Run Code Online (Sandbox Code Playgroud)
第二个命令获取视频并添加多个视频叠加。
ffmpeg -i movie.m4v -vf "movie=movie.m4v, scale=140:-1[inner]; movie=movie.m4v, scale=100:-1[inner2]; [in][inner] overlay=70:70 [step1]; [step1][inner2] overlay=300:70 [out]" out.mp4
Run Code Online (Sandbox Code Playgroud)
有谁知道如何将这两行组合成一个命令?
您可以使用一个过滤器图表来进行所有过滤。
ffmpeg -loop 1 -i image0.png -i video1.m4v -i video2.m4v -filter_complex \
"[0:v]scale=1280:-2[bg]; \
[1:v]scale=140:-1,setpts=PTS-STARTPTS[fg1]; \
[2:v]scale=100:-1,setpts=PTS-STARTPTS[fg2]; \
[bg][fg1]overlay=70:70:shortest=1[ol]; \
[ol][fg2]overlay=300:70,format=yuv420p[v]" \
-map "[v]" -movflags +faststart output.mp4
Run Code Online (Sandbox Code Playgroud)
movie不需要多媒体源过滤器。
请注意shortest=1其中一个覆盖过滤器中的 。否则图像输入将永远循环。trim或者,您可以在图像输入上使用过滤器。
的“文件结束”操作overlay可以用 更改eof_action。
该format过滤器将为 QuickTime 和其他蹩脚播放器设置兼容的色度子采样。
编码完成后-movflags +faststart会将一些数据重新定位到文件的开头。例如,如果您要输出到 MP4 并且您的观众将通过渐进式下载(例如从浏览器)观看,这非常有用。
假设两个视频都有立体声音频,并且您希望将每个视频的音频合并为单个立体声输出。

此示例将两个输入左通道放入输出左通道,并将两个输入右通道放入输出右通道。
ffmpeg -loop 1 -i image0.png -i video1.m4v -i video2.m4v -filter_complex \
"[0:v]scale=1280:-2[bg]; \
[1:v]scale=140:-1,setpts=PTS-STARTPTS[fg1]; \
[2:v]scale=100:-1,setpts=PTS-STARTPTS[fg2]; \
[bg][fg1]overlay=70:70:shortest=1[ol]; \
[ol][fg2]overlay=300:70,format=yuv420p[v]; \
[1:a][2:a]amerge[a]" \
-map "[v]" -map "[a]" -ac 2 -movflags +faststart output.mp4
Run Code Online (Sandbox Code Playgroud)

此示例会将第一个输入的两个通道放置到输出的左通道中,并将第二个输入的两个通道放置到输出的右通道中。
ffmpeg -loop 1 -i image0.png -i video1.m4v -i video2.m4v -filter_complex \
"[0:v]scale=1280:-2[bg]; \
[1:v]scale=140:-1,setpts=PTS-STARTPTS[fg1]; \
[2:v]scale=100:-1,setpts=PTS-STARTPTS[fg2]; \
[bg][fg1]overlay=70:70:shortest=1[ol]; \
[ol][fg2]overlay=300:70,format=yuv420p[v]; \
[1:a][2:a]amerge,pan=stereo|c0<c0+c2|c1<c1+c3[a]" \
-map "[v]" -map "[a]" -movflags +faststart output.mp4
Run Code Online (Sandbox Code Playgroud)
如果您只想要来自一个输入的音频,则只需-map在上面的视频示例中添加一个选项(不需要amerge和pan):
-map 1:a -c:a copy
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3049 次 |
| 最近记录: |