ffmpeg剪辑视频简单应用

背景:

博主非视频剪辑从业者,非软开码农, 不想花费大量时间进行ffmpeg的学习

搞这个的初衷是,被剪辑video文件太大,导入剪映耗时长,且剪映导出分辨率低,且不想花钱 = =

因此只做最简单的视频剪辑应用分享,达到截取视频,简单音视频抽取及重组的目的即可。

 

1.安装

https://ffmpeg.org/download.html#build-windows 

我是windows上面用,所以直接上ffmpeg官网上下了一个windows版本的安装包。解压缩就行

 

  • 修改系统环境变量:增加环境变量  \\local\ffmpeg\ffmpeg-2024-01-17-git-8e23ebe6f9-essentials_build\bin

 

  • 调试: 任意terminal敲ffmpeg后按tab键,可以弹出ffmpeg.exe就算安装好了

 

2.剪辑

我的需求很简单

  1.  从mp4中截取mp3出来
  2. mp4文件裁剪
  3. 替换mp4中的mp3
  4. 微调mp4中音视频同步

 

1.从mp4中截取mp3出来:

  我不需要设定采样率等细节,所以就单纯抽取audio音频mp3文件

  ffmpeg -i $VIDEO -y -vn $AUDIO 

2.mp4文件裁剪

  我的需求是$INPUT_VIDEO的1h11m30s开始剪辑,剪辑时长为3m10s.输出文件$OUTPUT_VIDEO   code如下

        ffmpeg -i $INPUT_VIDEO -ss 1:11:30 -t 00:03:10 -c:v copy -c:a copy $OUTPUT_VIDEO

3.替换mp4中音频

       同样我不需要音视频对齐,只是直接替换即可。我的mp3时间比mp4会短一点所以mp4最后是静音效果

   ffmpeg -an -i $INPUT_VIDEO  -vn -i $INPUT_AUDIO  -c:v copy  $OUTPUT_VIDEO

4.微调mp4中音视频同步

       完成步骤3前,我就会先尽量让$INPUT_VIDEO与$INPUT_AUDIO对齐。但是由于ffmpeg的时间戳是1s为单位,无法做更细节的调整。但是由于我在try step2的时候,发现由于ffmpeg在做video裁剪的时候,audio其实是另外通道进行采样。那么第一个采样点前的时间就会被干掉。因此如果我的音频想要向前调整,只需要不断的吃入video,再裁剪,就可以实现音频以采样率的步进(比如采样率是144k,那么就是6.9ms的步进)向前移动

  因此我的傻瓜做法:

  先make $INPUT_VIDEO保留前面一段无用的片段,便于我微调牺牲掉他们

  然后不断用下面的方式进行微调,直到得到满意的效果

   ffmpeg -i $INPUT_VIDEO -ss 00:00:01 -t 00:03:09 -c:v copy -c:a copy $OUTPUT_VIDEO

  

posted @ 2024-02-02 21:07  渝雪柒柒  阅读(69)  评论(0编辑  收藏  举报