ZFB

这是我的个人博客

马上订阅 ZFB RSS 更新: https://blog.whuzfb.cn/feed.xml

使用ffmpeg对视频和音频文件进行处理

2022年12月30日 22:59
WindowsUbuntuLinuxWindowsUbuntuLinux

目录

0. 常用命令说明

ffmpeg是一个命令行工具,所有的操作都是通过命令行来完成的,下面是一些常用的命令说明

  • -vcodec codec:强制使用codec编解码方式(copy代表不进行重新编码)
  • -acodec copy:表示音频不做新的编码,直接把原来的复制过来
  • -vcodec copy:表示视频不做新的编码,直接把原来的复制过来
  • -threads 5:指定5个线程同时转换
  • -vn:取消视频的输出
  • -an:取消音频轨
  • -ab 160000:设置比特率(单位为bit/s
  • -ar 8000:设置音频采样率(单位为Hz
  • -ac 1:设置声道数,1就是单声道,2就是立体声

1. 倍速播放

1.1 视频画面倍速播放

把输入的视频文件,画面播放速度快放到原来的2倍,保存为新的视频文件
ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" output.mp4

1.2 音频倍速播放

把输入的视频文件,音频播放速度快放到原来的2倍,保存为新的视频文件
ffmpeg -i input.mp4 -filter:a "atempo=2.0" output.mp4

1.3 视频画面和音频倍速播放

把输入的视频文件,画面播放速度快放到原来的2倍,音频播放速度快放到原来的2倍,保存为新的视频文件
ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mp4

2. 视频片段裁剪

2.1 获取视频的分辨率

方法一:获取视频的分辨率,以默认分隔符分割
ffprobe -v error -show_entries stream=width,height -of csv=p=0 demo.mp4
得到输出为: 1920,1080

方法二:获取视频的分辨率,以x分隔符分割
ffprobe -v error -show_entries stream=width,height -of csv=p=0:s=x output2.mp4
得到输出为: 1920x1080

2.2 截取指定时长的视频片段

从视频文件中,截取时间从00:00:00开始到00:00:11之间的片段,输出为新的视频文件
ffmpeg -ss 00:00:00 -to 00:00:11 -i input.mp4 -vcodec copy -acodec copy output.mp4

从视频文件中,截取时间从00:01:00开始,时长00:00:21的片段,输出为新的视频文件
ffmpeg -ss 00:01:00 -t 00:00:21 -i input.mp4 -vcodec copy -acodec copy output2.mp4

从视频文件中,截取时间从00:00:0000:00:11之间的片段,分辨率为1920x1080,输出为新的视频文件
ffmpeg -ss 00:00:00 -to 00:00:11 -i input.mp4 -vcodec copy -acodec copy -s 1920,1080 output.mp4

2.3 裁剪视频画面尺寸

参数示例:crop=new_width:new_height:start_x:start_y
把原视频画面裁剪成宽高为400x200的新视频,x的起始位置是...

剩余内容已隐藏

查看完整文章以阅读更多