FFmpeg

命令格式:ffmpeg {通用参数} {输入音频参数} {输出音频参数}

使用文档:

https://trac.ffmpeg.org/wiki 

https://cloud.baidu.com/doc/SPEECH/s/7k38lxpwf(百度)

https://www.quarkbook.com/wp-content/uploads/2019/10/ffmpeg%E7%BF%BB%E8%AF%91%E6%96%87%E6%A1%A3.pdf(中文翻译)

 

1、音频格式转换

// 转换为任意格式(除pcm)
ffmpeg -i input.mp3 -ac 1 -ar 16000 output.${format}

// 转换为pcm,需额外指定-f
ffmpeg -i input.wav -f s16le -ac 1 -ar 16000 output.pcm

// 处理pcm格式音频  注意:输入pcm格式需要额外告知编码格式,采样率,单声道信息
ffmpeg -y -f s16le -ar 16000 -ac 1 -i input.pcm output.wav

-y:覆盖输出文件

-f:强制文件格式(如pcm为s16le)

-ar:采样率

-ac:声道数

-i:输入文件

-acodec :指定编码器(如pcm_s16le),没有则使用默认的。

2、切割音频

// 等分切段
ffmpeg -y -acodec pcm_s16le -f s16le -ac 1 -ar 8000 -i 31866_audio_converter.pcm -f segment -segment_format s16le -segment_time 10 -c copy audio_slice/%1d.pcm
// 切割指定位置
ffmpeg -i left.wav -ss 192.96 -to 195.96 test3-192960-195960.wav   // 注意:添加-c copy命令后有可能切分出的片段时长比指定的短

3、提取音频声道

// filter_complex命令
ffmpeg -y -i 24syinpin.m4a -filter_complex "channelsplit=channel_layout=stereo [L][R]" -map "[L]" -ar 16000 -ac 1 left.wav -map "[R]" -ar 16000 -ac 1 right.wav

// map_channel命令(某些版本不支持)
ffmpeg -i stereo.wav -map_channel 0.0.0 left.wav -map_channel 0.0.1 right.wav

4、视频相关

提取视频:ffmpeg -i input.mp4 -vcodec copy -an extract.mp4

提取音频:ffmpeg -i v.f802185.mp4 -vn -f s16le -ac 1 -ar 16000 extract.pcm (不需要指定编码,且指定编码acodec格式如果和输出格式不一致会报错)

提取视频和音频:ffmpeg -i video_compressed.mp4 -map 0 -c:v copy -an output_video.mp4 -map 0:a -f s16le -ac 1 -ar 16000 output_audio.pcm

合成音频和视频:ffmpeg -i extract.mp4 -f s16le -ar 16000 -ac 1 -i extract.pcm -vcodec copy hecheng.mp4

合成音频:ffmpeg -f s16le -ac 1 -ar 16000 -i hh.pcm -f s16le -ac 1 -ar 16000 -i xx.pcm -filter_complex amix=inputs=2:duration=longest -f s16le hecheng.pcm

posted @ 2024-05-17 17:05  zhegeMaw  阅读(46)  评论(0)    收藏  举报