使用 ffmpeg 帮助制作 ppt 视频

前一段制作一个线上课程,用到了一些相关 ffmpeg 的命令,记录在这里,以备后用。

  1. 转换 mv4 成为 mp4
ffmpeg -i input.m4v output.mp4
  1. 在 keynote 里面有一些演示的视频,在 keynote 里面能正常播放,但是使用 Record SlideShow 功能生成的视频文件里面,这些演示的视频就变成静态了,只显示封面图片,根本 没有播放。下面这条命令可以把原来的视频叠加到 ppt 输出的视频上面,第一段演示视频 pip-pyarmor.mov 在 30 秒开始播放,第二段演示视频在 120 秒开始播放,使用 overlay 过滤器把这两段视频叠加到原来的视频,这样就播放正常了
ffmpeg -i ppt-record.mp4  \
       -itsoffset 30 -i ../pip-pyarmor.mov \
       -itsoffset 120 -i ../cmd-obf.mov \
       -filter_complex "
[1:v]scale=1920:1080[v1];[0:v][v1]overlay=eof_action=pass[m1];
[2:v]scale=1920:1080[v2];[m1][v2]overlay=eof_action=pass"
       output.mp4
  1. 合并多个视频,必须是 mp4 格式的,首先创建文件 filelist.txt
file 'section1.mp4'
file 'section2.mp4'
file 'section3.mp4'

然后在执行下面的命令

ffmpeg -f concat -i filelist.txt -c copy output.mp4
  1. 为录屏添加空白音频,这样和其他视频合并的时候,不会导致后面视频中声音不同步
ffmpeg -y -i webui-obf.mp4 -filter_complex "anullsrc[a]" -c:v copy -map '0:v' -map '[a]' -shortest output.mp4
  1. 把两个视频一左一右同时进行播放
ffmpeg -i left.avi -i right.avi -filter_complex "
nullsrc=size=200x100 [background];
[0:v] setpts=PTS-STARTPTS, scale=100x100 [left];
[1:v] setpts=PTS-STARTPTS, scale=100x100 [right];
[background][left]       overlay=shortest=1       [background+left];
[background+left][right] overlay=shortest=1:x=100 [left+right]
" output.mp4
  1. 在视频右下角显示图片
ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=main_w-overlay_w-10:main_h-overlay_h-10" output.mp4
  1. 合并音频和录屏成为一个视频
fmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac output.mp4
上一篇:思科SD-WAN OMP协议原理详解(Overlay Management Protocol)


下一篇:flutter 使用Overlay + GestureDetector 制作一个全局可拖拽悬浮按钮