提取文件中的视频
1 | $ ffmpeg -i input.mp4 -vcodec copy -an v.mp4 |
提取文件中的音频
1 | $ ffmpeg -i input.mp4 -vn -acodec copy a.m4a |
提取文件中的mp3
1 | $ ffmpeg -i input.mp4 -vn a.mp3 |
这里
- -vn: 剔除输入文件中的视频
- -ar: 设置输出mp3文件频率. 通常为 22050, 44100, 48000 Hz.
- -ac: 设置音频通道数.
- -ab: 设置音频码率.
- -f: 设置输出文件格式. 这里为mp3
改变mp3文件的大小
1 | $ ffmpeg -i input.mp3 -af 'volume=0.5' output.mp3 |
提取mp3文件中的指定时间音频
1 | $ ffmpeg -i mc.mp3 -ss 00:00:00 -to 00:00:30 -acodec copy a2.mp3 |
提取指定时间的视频
1 | $ ffmpeg -i input.mp4 -t 00:00:30 -c copy part1.mp4 -ss 00:00:30 -codec copy part2.mp4 |
改变视频文件的分辨率
1 | $ ffmpeg -i input.mp4 -filter:v scale=1280:720 -c:a copy output.mp4 |
合并视频与音频文件
1 | $ ffmpeg -i a.m4a -i q1.mp4 -c copy av.mp4 |
拼接多个视频
将要合并的文件写入文件join.txt, 如下
1 | file /home/genius/videos/video1.mp4 |
执行以下命令
1 | $ ffmpeg -f concat -safe 0 -i join.txt -c copy 3dav.mp4 |
截取视频指定时间的图像
1 | $ ffmpeg -i input.mp4 -ss 10 -vframes 1 output.jpg |
设置视频宽高比
1 | $ ffmpeg -i input.mp4 -aspect 16:9 output.mp4 |
截取视频指定时间的系列图像
1 | $ ffmpeg -i input.mp4 -r 1 -f image2 image-%2d.png |
这里
- -r: 帧率,默认25
- -f: 输出文件格式, 这里为image
- -image-%2d.png: 提取图片命名格式,这里文件将被命名为image-01.png, image-02.png等,如果是%3d, 则为image-001.png, image-002.png
截取视频指定时间的gif
1 | $ ffmpeg -i input.mp4 -ss 10 -to 15 -s 640x320 -r 30 output.gif |
给视频添加滤镜
1 | $ ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=20:20" output.mp4 |
按照biterate压缩视频
1 | $ ffmpeg -i input.mp4 -b:v 0.8M scaled.mp4 |
将图片合并成视频
- 不带音频
1
ffmpeg -framerate 1 -pattern_type glob -i 'images/*.png' -c:v libx264 -profile:v high -crf 20 -pix_fmt yuv420p output.mp4