ffmpeg
命令格式:
ffmpeg [全局参数] {[输入文件参数] -i 输入文件地址} ... {[输出文件参数] 输出文件地址} ...
1. 获得媒体文件的信息
显示文件信息
ffmpeg -i video_file.mp4
ffmpeg -i audio_file.mp3
ffmpeg -i aa.mp4 -hide_banner # 隐藏无用的信息
2. 转换媒体文件
可以转换视频、音频的格式:
ffmpeg -i video_input.mp4 video_output.avi
ffmpeg -i video_input.webm video_output.flv
ffmpeg -i audio_input.mp3 audio_output.ogg
ffmpeg -i audio_input.wav audio_output.flac
# 输出多个后缀
ffmpeg -i audio_input.wav audio_output_1.mp3 audio_output_2.ogg
# 查看支持的格式
ffmpeg -formats
# 使用 -hide_banner 来省略一些程序信息
# 使用 -qscale 0 来保留原始的视频质量
ffmpeg -i video_input.wav -qscale 0 video_output.mp4
# 指定编码器,使用 -c:a (音频) 和 g-c:v (视频) 来指定编码器名称,或者写 copy 来使用与源文件相同的编码器
ffmpeg -i video_input.mp4 -c:v copy -c:a libvorbis video_output.avi
ffmpeg -i aa.mp4 -c:a copy a1.avi
3. 从视频中抽取音频
# 一般使用 -vn 参数就可以了,它会服用原有文件的比特率
ffmpeg -i video.mp4 -vn audio.mp3
ffmpeg -i aa.mp4 -vn -c:a copy output.aac
# -ab(音频比特率)可以指定编码比特率
# 常见比特率有:96k, 128k, 192k, 256k, 320k (mp3也可以使用最高的比特率)
ffmpeg -i video.mp4 -vn -ab 128k audio.mp3
其他的一些常用的参数比如 -ar (采样率: 22050, 441000, 48000), -ac (声道数), -f (音频格式, 通常会自动识别的). -ab 也可以使用 -b:a 来替代. 比如:ffmpeg -i video.mov -vn -ar 44100 -ac 2 -b:a 128k -f mp3 audio.mp3
4. 视频静音
# -an 会让所有的音频参数无效
ffmpeg -i video_input.mp4 -an -video_output.mp4
5. 视频/音频剪裁
从头开始剪裁一部分:
# -t 参数指定一个时间
# 从头开始剪裁 5s
ffmpeg -i input_video.mp4 -t 5 output_video.mp4
# 方法二:H:MM:SS (小时, 分钟, 秒),相当于指定了结束时间,从头开始
ffmpeg -i input_audio.wav -t 00:00:05 output_audio.wav
也可以通过 -ss 给出一个开始时间,-to 给出结束时间:
# 开始时间:(-ss HH:MM:SS), 持续秒数 (-t duration)
# 结束时间:(-to HH:MM:SS), 和开始秒数 (-s duration)
ffmpeg -i input_audio.mp3 -ss 00:01:14 output_audio.mp3
ffmpeg -i input_audio.wav -ss 00:00:30 -t 10 output_audio.wav
ffmpeg -i input_video.h264 -ss 00:01:30 -to 00:01:40 output_video.h264
ffmpeg -i input_audio.ogg -ss 5 output_audio.ogg
参考