ffmpeg常用操作
阅读原文时间:2023年07月08日阅读:1

常见的ffmpeg音频参数

常用参数解释:

    - i 表示input,即输入文件
    - f 表示format,即输出格式
    - vn 表示vedio not,即输出不包含视频
    - ar 设定采样率
    - ac 设定声音的channel数
    - ab 音频数据流量,一般选择32、64、96、128
    - acodec 设定声音解码器
    - y 覆盖输出文件

更详细的参数说明:官方文档

将视频转换成音频

# 把MP4转换成MP3
ffmpeg -i old.mp4 new.mp3

# 将MP4转换成wav
ffmpeg -i 606120.mp4 -f wav -vn test.wav

# 生成16位、单声道、采样率为16k。其中“-f wav”是必不可少的,否则生成的就是pcm数据,而非wav。
ffmpeg -i 123.mp4 -acodec pcm_s16le -f s16le -ac 1 -ar 16000 -f wav 123.wav

# 如果只想获得原始的pcm文件,可以用下面的命令:
ffmpeg -i 123.mp4 -acodec pcm_s16le -f s16le -ac 1 -ar 16000 123.pcm

# 从视频中提取aac文件
ffmpeg -i 1.mp4 -vn -y -acodec copy vn.aac

音频格式转换:wav转mp3

ffmpeg -i input.wav -acodec libmp3lame -aq 4 -ar 44100 -ab 320k -ac 2 output.mp3 

# 将双通道wav转换成pcm:
ffmpeg -y -i 1.wav -acodec pcm_s16le -f s16le -ac 1 -ar 16000 1.pcm

# pcm转换成wav
ffmpeg -f s16le -ar 16000 -ac 1 -i input.pcm output.wav
# s16le:有符号、整形、小端
# 把mp3转换为wav文件
ffmpeg -i input.mp3 output.wav

删除静音片段

ffmpeg -i vn436.aac -af silenceremove=stop_periods=-1:stop_duration=1:stop_threshold=-30dB vn436.aac
# 经过测试,可以有效删除静音片段,可以用于aac音频格式。
# stop_duration:静音片段阈值,超过多少秒就会删除静音片段。

增大音量

# 放大音量(volune=1表示正常音量,=0.5表示变为一半,=2表示变为2倍)
ffmpeg -i input.wav -c:a copy -af 'volume=2' output.wav

音频截取

# 音频截取,截取0秒到10秒
ffmpeg -i radio.mp3 -vn -acodec copy -ss 00:00:00 -t 00:00:10 ouput.mp3

音频拼接

# 音频拼接,将多个MP3按顺序拼接生成一个mp3
ffmpeg -i "concat:1.mp3|ding.mp3|2.mp3" -acodec copy output.mp3

音频补白

# 手动生成一条10秒长的空白音频 :test.mp3
ffmpeg -f lavfi -t 10 -i anullsrc test.mp3 -y

音频格式之间的转换:link

判断是否有音轨-ffprobe

ffprobe -i INPUT -show_streams -select_streams a -loglevel error
# loglevel error,控制日志打印级别