ffmpeg 实用教程(非常全)
- FFmpeg
-
- Download(Mac)
-
-
- brew
- ffmpeg
-
- 常用操作(最全最简单)
-
- 音频
-
- 音频转换格式
- 多个音频混音
- 改变音量大小
- 音频淡入淡出
- 调整音频速率
- 音频延迟
- 静音音频
- 音频拼接
- 视频
-
- 抽帧
- 帧合成视频
- 抽取视频中的音频
- 替换视频音轨
- 剪切
- 拼接
- 音视频
-
-
- 音/视频流
- 容器
- channel
- 图例
-
- Reference
FFmpeg
ffmpeg 官方文档
FFMPEG常用命令
Download(Mac)
brew
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
ffmpeg
brew install ffmpeg
常用操作(最全最简单)
都是自己用过的命令,有些有多种方法,但是只给了自己常用的一种(比如视频剪切,尝试过不同的方法,有的音视频不能同步有的剪切出来分辨率不高,记录在帖子里的没有上面哪几种问题)希望能给你一些帮助
音频
音频转换格式
将 xxx 文件转换为 wav音频
ffmpeg -y -i engine-input.mp4/mp3/wav/avi... -f wav -ar 16000 -ac 1 wav2midi-input.wav
参数解释:
-i 设定输入流
-f 设定输出格式
-ar 设定采样率
-ac 设定声音的Channel数 (1表示单声道,2就是立体声)
-acodec 设定声音编解码器,未设定时则使用与输入流相同的编解码器
多个音频混音
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT
ffmpeg -i 你一定要幸福_svocal.wav -i 你一定要幸福_accomp.wav -filter_complex amix=inputs=2:duration=first:dropout_transition=2 你一定要幸福.wav -y
改变音量大小
ffmpeg -i input.wav -af volume=-3dB output.wav
音频淡入淡出
ffmpeg -i 12.mp3 -filter afade=t=in:ss=5:d=3 tttt111t.wav //从5秒开始淡入3秒,淡入开始前都是最低音量
ffmpeg -i 12.mp3 -filter afade=t=out:st=5.3:d=5 danchu.mp3 //5.3秒开始淡出5秒,淡出后面变成静音,无论是否已经完成
调整音频速率
简单的方法是调整音频采样率,但是这种方法会改变音色,
一般采用通过对原音进行冲采样,差值等方法。
ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv
注意:
- 倍率调整范围为[0.5, 2.0]
- 如果需要调整4倍可采用以下方法:
ffmpeg -i input.mkv -filter:a "atempo=2.0,atempo=2.0" -vn output.mkv
音频延迟
延迟 1000 ms
ffmpeg -i futurebass300.wav -filter_complex adelay="1000|1000" futurebass-300-d1.wav
静音音频
-t 11 代表生成多少 s 的静音
ffmpeg -f lavfi -t 11 -i anullsrc test.aac -y
ffmpeg -y -i test.aac -f wav -ar 44100 -ac 1 science.wav -y
音频拼接
音频前插入一段静音
ffmpeg -i science.wav -i input.wav -filter_complex '[0:0] [1:0] concat=n=2:v=0:a=1 [a]' -map [a] output.wav -y
视频
抽帧
ffmpeg -i input.mp4 -q:v 2 -f image2 output/%d.jpeg -y
帧合成视频
ffmpeg -f image2 -i output/%d.jpeg -i 1.wav -acodec copy output.mp4 -y
抽取视频中的音频
ffmpeg -i input.mp4 -vn -y -acodec copy output.wav -y'
替换视频音轨
ffmpeg -i .mp4 -i input.wav -c:v copy -c:a aac -strict experimental -map 0:v:0 -map 1:a:0 output.mp4 -y
剪切
ffmpeg -ss 71 -t 52 -accurate_seek -i input.mp4 -codec copy -avoid_negative_ts 1 output.mp4 -y
拼接
ffmpeg -i input1.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 1.ts
ffmpeg -i input2.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 2.ts
ffmpeg -i "concat:1.ts|2.ts" -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4
音视频
FFMPEG基本概念
在讲解 FFMPEG 命令之前,我们先要介绍一些音视频格式的基要概念。
音/视频流
在音视频领域,我们把一路音/视频称为一路流。如我们小时候经常使用VCD看港片,在里边可以选择粤语或国语声音,其实就是CD视频文件中存放了两路音频流,用户可以选择其中一路进行播放。
容器
我们一般把 MP4、 FLV、MOV等文件格式称之为容器。也就是在这些常用格式文件中,可以存放多路音视频文件。以 MP4 为例,就可以存放一路视频流,多路音频流,多路字幕流。
channel
channel是音频中的概念,称之为声道。在一路音频流中,可以有单声道,双声道或立体声。
图例
基本信息查询命令
录制
分解/复用
处理原始数据
滤镜
切割与合并
图/视互转
直播相关
Reference
https://www.cnblogs.com/wainiwann/p/4128154.html
http://quanzhan.applemei.com/webStack/TkRBNE9RPT0%3D