1. 使用ffmpeg转换格式
可适用两个场景:
- kazam录制的视频在windows无法播放;
- 手机录制的视频在linux直接用ffmpeg倍速处理后无法播放;
无法播放原因:
视频文件扩展名是使用它们所用的容器来命名的,而不是它们所包含的音频和视频编解码器。(例如,MP4 视频文件实际上是 MP4 容器。)只有编解码器和容器都与视频播放器兼容,视频文件才能正常播放。
kazam编码器产生的编码格式无法被windows默认播放器识别,这就是为什么同样是mp4我们无法在windows播放。简单解决方法是转换编码格式。
转换编码格式指令如下:
ffmpeg -i input.mp4 -pix_fmt yuv420p -c:a copy -movflags +faststart out.mp4
2. 使用ffmpeg转换为gif
ffmpeg -t 10 -ss 00:00:00 -i input.mp4 -r 5 output.gif
其中-t 10 -ss 00:00:00 的意思是截取从00:00:00开始时间长度为10秒的视频,如果从第15秒开始,就将00:00:00 改为 00:00:15 ;如果从视频的开头即00:00:00就开始截取,其实-ss 00:00:00 也可以省略,只使用-t 10 。-r 5 的意思是以5fps截取视频帧,即每秒钟截取5张画面;可自行根据实际需要调整
3. 压缩GIF
视频转换得出的GIF图片体积普遍比较大,可以通过以下命令进行压缩处理:
convert input.gif -fuzz 10% -layers Optimize output.gif
4. 视频处理成2倍速:
ffmpeg -i old.mp4 -vf "setpts=0.5*PTS" new.mp4
5. 合并视频:
ffmpeg -i 1.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 1.ts
ffmpeg -i 2.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 2.ts
ffmpeg -i "concat:1.ts|2.ts" -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4