ffmpeg常用命令

前言

攒了几年的常用命令,里面包含了mp4box命令。

音频

wav转320kmp3

1
ffmpeg -i "1.wav" -vn -ar 44100 -ac 2 -ab 320k -f mp3 "1.mp3"

m4a转最高质量无损mp3

1
ffmpeg -i "1.m4a" -acodec libmp3lame -aq 0 "1.mp3" -y

音频剪切

1
ffmpeg -i "扬声器.aac" -ss  2 -t 01:46:00 -acodec copy 1.aac

音频音量提升db

1
ffmpeg -i 2.aac -af volume=5dB output.aac

两个音频文件合并成双声道

1
ffmpeg -i 2.aac -i 3.aac -filter_complex "[0:a][1:a]amerge=inputs=2[aout]" -map "[aout]" 4.aac

合并音频

1
ffmpeg -i "1.aac" -i "2.aac" -filter_complex amix=inputs=2:duration=first:dropout_transition=2 3.aac

音频拼接

1
echo file '1.mp3'>list.txt&&echo file '2.mp3'>>list.txt&&ffmpeg -f concat -i list.txt -c copy "all.mp3"

aac转m4a

1
ffmpeg -i left.aac -ac 2 output.m4a

mp3裁剪

1
ffmpeg -i "" -ss 08 -t 10 -acodec copy o.mp3

mp3添加封面图片

1
ffmpeg -i 1.mp3 -i 1.png -map 0:0 -map 1:0 -c copy -id3v2_version 3 -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (front)" 2.mp3

提取mp3专辑图片

1
ffmpeg -i input.mp3 cover.jpg

视频

给视频加黑框

1
ffmpeg -i out2.mp4 -vf "scale=1920:888,pad=1920:1080:0:96:black" output.mp4

黑框变成背景图片

1
ffmpeg -i out2.mp4 -i 模板.png -filter_complex overlay=W-w:H-h -max_muxing_queue_size 1024 output.mp4

视频裁剪

1
ffmpeg -t 01:01:16 -accurate_seek -i 1.mp4 -codec copy -avoid_negative_ts 1 out1.mp4 -y

视频合并
新建concat.txt内容为

1
2
file '1.mp4'
file '2.mp4'

然后执行合并命令

1
ffmpeg -f concat -safe 0 -i concat.txt -c copy concat.mp4

这里-safe 0是为了支持中文文件名,否则无法合并。

录制屏幕

1
ffmpeg -f dshow -i video="screen-capture-recorder" -preset ultrafast -c:v libx264 -b:v 8000k -r 30 -s 1920x1080 -y 1.mp4

录制屏幕和麦克风

1
ffmpeg -f dshow -i video="screen-capture-recorder" -f dshow -i audio="FrontMic (Realtek High Definition Audio)" -preset ultrafast -c:v libx264 -b:v 8000k -r 30 -s 1920x1080 -y 1.mp4

无光标窗口录制

1
ffmpeg -f gdigrab -draw_mouse 0 -i title=AirServer -preset ultrafast -c:v libx264 -b:v 5000k -r 30 -s 1920x1080 -y 1.mp4

视频截图

1
ffmpeg -i "1.mp4" -ss 10 -vframes 1 1.png

视频截图并指定分辨率

1
ffmpeg -i "1.mp4" -ss 10 -t 0.001 -s 960x600 -y output.jpg

将视频分辨率转换成1920x1080

1
ffmpeg -i 1.mp4 -vf scale=1920:1080 1920.mp4 -hide_banner

文字制作成视频

1
ffmpeg -f lavfi -i color=c=black:s=1920x1080 -vf "drawtext=fontfile=arial.ttf: text='text': fontcolor=white: fontsize=30: x=(w-text_w)/2: y=(h-text_h)/2: enable='between(t,0,3)'" -t 3 1.mp4 -y

音视频

音视频合并

1
mp4box -add "QtScrcpy.mp4#trackID=1:par=1:1:name=" -add "3.aac:name=" -new "out2_Mux.mp4"

音视频合并

1
ffmpeg -i "QtScrcpy.mp4" -i "3.aac" -map 0:v -c:v copy -map 1:0 -c:a copy "out2_Mux.mp4" -y
1
ffmpeg -i "vtemp.mp4" -i "atemp.mp3" -vcodec copy -acodec copy "output.mp4"

视频音频抽取m4a

1
ffmpeg -i 11.mp4 -vn -ar 44100 -ac 2 -ab 320k -codec copy out.m4a

视频音频提取成mp3

1
ffmpeg -i "1.mp4" -ar 44100 -ac 2 -ab 128k -vn -f mp3 1.mp3

pcm_s16be格式

视频提取中的音频

1
ffmpeg -i "C7984.mp4" -map 0:1 -c:a aac audio.aac

提取中的视频

1
ffmpeg -i "C7984.mp4" -map 0:0 -c copy -an -dn video.mp4

视频的 pcm_s16be 流创建一个具有相同视频和 flac 无损音频的新视频…

1
ffmpeg -i 1.mp4 -c:a flac -i 1.aac -c copy -map 0:v -map 1:a:0 -disposition:a:0 default -disposition:a:1 default -strict -2 -sn -dn -map_metadata -1 -map_chapters -1 -movflags 2.mp4