1,提取视频(去音频)
ffmpeg -i %s -vcodec copy -an %s
操作示例,将test.mp4提取视频,输出为test1.mp4:
ffmpeg -i test.mp4 -vcodec copy -an test1.mp4
2,提取音频
ffmpeg -i %s -acodec copy -vn %s
操作示例,将test.mp4体育音频,输出为audio1.aac:
ffmpeg -i test.mp4 -acodec copy -vn audio1.aac
3,音视频合成
ffmpeg -i %s -i %s -codec copy -y %s
操作实例,将audio1.aac音频文件和temp.mp4提取得视频文件temp1.mp4合成,输出为test2.mp4
ffmpeg -i temp.mp4 -vcodec copy -an temp1.mp4
ffmpeg -i audio1.aac -i temp1.mp4 -codec copy -y test2.mp4
注:该指令合成的时长已最长时间,如该样例,音频文件时长大于视频文件,则视频播放到最后一帧时,继续播放音频,直到音频播放结束整个视频才结束。
同时该指令将音频文件和一个音视频文件合成失败,如该指令没有效果:ffmpeg -i audio1.aac -i temp.mp4 -codec copy -y test3.mp4
4,音频剪切
ffmpeg -ss %d -accurate_seek -t %d -i %s -acodec copy -vn %s
操作实例:audio1.aac为23秒的音频,剪切0s到16s,输出为audio2.aac
ffmpeg -ss 0 -accurate_seek -t 16 -i audio1.aac -acodec copy -vn audio2.aac
实际结果报错: Estimating duration from bitrate, this may be inaccurate
(解决参考:https://blog.csdn.net/u013470102/article/details/80880079)查看音频文件信息
ffmpeg -i audio1.acc
牵扯acc格式音频文件源码修改,暂不深入,祥见下面将mp3文件剪切成功
5,音频转码
ffmpeg -i %s %s
操作实例:将audio1.aac转为audio3.mp3
ffmpeg -i audio1.aac audio3.mp3
再次尝试将该mp3格式音频文件剪切,剪切成功,输出为audio4.mp3
ffmpeg -ss 0 -accurate_seek -t 16 -i audio3.mp3 -acodec copy -vn audio4.mp3
6,音频合并
ffmpeg -i concat:"%s|%s" -acodec copy %s
操作实例:将audio3.mp3、audio4.mp3合并,输出为audio5.mp3(16s + 23s)
ffmpeg -i concat:"audio3.mp3|audio4.mp3" -acodec copy audio5.mp3
7,音频合成(混响)
ffmpeg -i %s -i %s -filter_complex amix=inputs=2:duration=first -strict -2 %s
操作实例:制作二重唱
将audio3.mp3从第一秒开始剪切,长度16s,输出audio6.mp3
ffmpeg -ss 1 -accurate_seek -t 16 -i audio3.mp3 -acodec copy -vn audio6.mp3
将audio6.mp3、audio4.mp3合成,输出为audio7.mp3
ffmpeg -i audio6.mp3 -i audio4.mp3 -filter_complex amix=inputs=2:duration=first -strict -2 audio7.mp3
//adjust volume:using '-vol 50', which is form 0 to 100 待深入研究音量参数设置
8,设置视频宽高比
-aspect[:stream_specifier] aspect (output,per-stream)
操作实例:将test.mp4文件输出为16:9,输出文件名test4.mp4
ffmpeg -i test.mp4 -aspect 16:9 test4.mp4
// If used together with -vcodec copy, it will affect the aspect ratio stored at container level, but not the aspect ratio stored in encoded frames, if it exists.
9,绘制音频波形图
ffmpeg -i %s -filter_complex "showwavespic=s=1280X720" -frames:v 1 %s
操作实例:绘制test.mp4视频文件的音频波形图,输出为1280X720的图片wavespic1.png
ffmpeg -i test.mp4 -filter_complex "showwavespic=s=1280X720" -frames:v 1 wavespic1.png