使用ffmpeg对视频和音频文件进行处理
目录
- 0. 常用命令说明
- 1. 倍速播放
- 2. 视频片段裁剪
- 3. 视频导出图片
- 4. 从图片集创建GIF文件
- 5. 提取视频文件的音频
- 6. 把音频和画面合并为新的视频
- 7. 下载m3u8文件为.ts文件
- 8. 批量提取视频关键帧
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:00到00: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的起始位置是...
剩余内容已隐藏