首页 Order FFmpeg 正文

FFmpeg 常用命名功能收集

金鹏头像 金鹏 FFmpeg 2021-11-02 15:11:02 0 917
导读:FFmpeg命令./ffmpeg -y -i ~/Desktop/test.mp4 -i ~/Desktop/yumu.mp3&n...

图片.png



FFmpeg命令

./ffmpeg -y -i ~/Desktop/test.mp4 -i ~/Desktop/yumu.mp3 -i ~/Desktop/dizi.mp3
 -filter_complex "[1]adelay=10000|10000[aud1];[2]adelay=5000|5000[aud2];
 [0][aud1][aud2]amix=3" -c:v copy ~/Desktop/video/out.mp4

视频文件大小计算

文件大小 = (视频比特率 + 音频比特率) x 时长 / 8
文件大小 = (视频比特率/8 + 音频比特率/8) x 时长 比特率单位为:kbit

多效果处理

./ffmpeg -y -i ~/Desktop/test.mp4 -i ~/Desktop/yumu.mp3 -filter_complex "
 [1]adelay=1000|1000[aud1];[0][aud1]amix" -shortest  -vf lutyuv=u=128:
 v=128 -b 1228800 ~/Desktop/video/33.mp4

添加图片水印(必须加引号)

./ffmpeg -i ~/Desktop/test.mp4 -vf movie='/Users/long/Desktop/logo.png
[wm];[in][wm] overlay=30:10[out]' ~/Desktop/video/1.mp4

使用滤镜

./ffmpeg -y -i ~/Desktop/test.mp4 -vf transpose=1 ~/Desktop/video/11.mp4

transpose 表示产生一个顺时针旋转90度的测试图案

使用atempo音频滤镜将输入音频速率降低到80%后写入输出文件

ffmpeg -i input.mp3 -af atempo=0.8 output.mp3

多滤镜使用

./ffmpeg -y -i ~/Desktop/test.mp4 -i ~/Desktop/video/110.mp4 -i 
~/Desktop/logo.png -filter_complex 
"[0:v]format=rgb24,setsar=sar=1/1[mv];[1:v]format=rgb24,
setsar=sar=1/1[in];[in][mv]blend=all_mode='addition':
all_opacity=1,format=rgb24[tmp];[tmp][2:v]overlay=20:20:
enable='between(t,1,2)'" 
-strict -2 ~/Desktop/video/111.mp4

滤镜加水印

./ffmpeg -y -i ~/Desktop/test.mp4 -i ~/Desktop/logo.png -filter_complex 
"[0:v]overlay=20:20" 
-strict -2 ~/Desktop/video/111.mp4

amix滤镜

默认为2个输入。若多于2个需要指定 inputs=个数

./ffmpeg -y -i ~/Desktop/test.mp4 -i ~/Desktop/yumu.mp3 -i ~/Desktop/dizi.mp3
 -vf vflip -b 847872 -s 
1024x576 -filter_complex "[0]adelay=0|0[d1];[1]adelay=0|0[aud1];
[2]adelay=241000|241000[aud2];
[d1][aud1][aud2] amix=inputs=3" -shortest  ~/Desktop/video/999.mp4

裁剪视频

./ffmpeg -y -i  ~/Desktop/test.mp4 -filter_complex "crop=640:480:200:100"
 ~/Desktop/video/crop.mp4

顺时针旋转90度

./ffmpeg -y -i  ~/Desktop/test.mp4 -filter_complex "transpose=1"
 ~/Desktop/video/90.mp4

逆时针旋转90度,将 transpose=2即可

调整对比度

./ffmpeg -y -i  ~/Desktop/test.mp4 -filter_complex "eq=contrast=1"
  ~/Desktop/video/contrast.mp4

调整亮度

./ffmpeg -y -i  ~/Desktop/test.mp4 -filter_complex "eq=brightness=2" 
 ~/Desktop/video/light.mp4

调整饱和度

./ffmpeg -y -i  ~/Desktop/test.mp4 -filter_complex "eq=saturation=2"
  ~/Desktop/video/saturation.mp4

调整对比度、亮度、饱和度 ,多个滤镜用冒号分割

./ffmpeg -y -i  ~/Desktop/test.mp4 -filter_complex "eq=contrast=1:
brightness=1:saturation=2"  
~/Desktop/video/eq.mp4

添加图片水印

./ffmpeg -y -i ~/Desktop/test.mp4 -i ~/Desktop/logo.png -filter_complex 
overlay=10:10 ~/Desktop/video/mark.mp4

添加半透明水印

./ffmpeg -y -i ~/Desktop/test.mp4 -i ~/Desktop/logo.png -filter_complex 
"[1:v]colorkey=0x000000:0.6:1.0[ckout];[0:v][ckout]overlay=10:10[out]" 
-map "[out]" -map 0:a 
 ~/Desktop/video/mark.mp4

缩放水印图片

./ffmpeg -y -i ~/Desktop/test.mp4 -i ~/Desktop/logo.png -filter_complex 
"[1:v]scale=30:30[wm];
[0:v][wm]overlay=20:20" ~/Desktop/video/scale_mark.mp4

去除水印

./ffmpeg -y -i ~/Desktop/test.mp4 -filter_complex "delogo=x=20:y=30:
w=100:h=200"
 ~/Desktop/video/delogo.mp4

去除多个水印

./ffmpeg -y -i ~/Desktop/test.mp4 -filter_complex "delogo=x=20:y=30:
w=100:h=200
,delogo=x=800:y=30:w=100:h=80"
 ~/Desktop/video/delogo.mp4

添加水印&去除水印

./ffmpeg -y -i ~/Desktop/test.mp4 -i ~/Desktop/logo.png  -filter_complex 
"delogo=x=20:y=30:w=100:h=200,
delogo=x=800:y=30:w=100:h=80,overlay=50:50" ~/Desktop/video/delogo.mp4

水平翻转

./ffmpeg -y -i ~/Desktop/test.mp4 -filter_complex "geq=p(W-X\,Y)" 
~/Desktop/video/geq.mp4

垂直翻转

./ffmpeg -y -i ~/Desktop/test.mp4 -filter_complex "vflip" 
~/Desktop/video/vflip.mp4

添加水印&裁剪

./ffmpeg -y -i ~/Desktop/test.mp4 -i ~/Desktop/logo.png 
-filter_complex "overlay=20:20,crop=800:500:0:0"
 ~/Desktop/video/1.mp4

调整音量

./ffmpeg -y -i ~/Desktop/test.mp4 -filter_complex "volume=2" 
~/Desktop/video/volume+.mp4
./ffmpeg -y -i ~/Desktop/test.mp4 -filter_complex "volume=0" 
~/Desktop/video/volume0.mp4
./ffmpeg -y -i ~/Desktop/test.mp4 -filter_complex "volume=0.5" 
~/Desktop/video/volume-.mp4

视频配音

./ffmpeg -y -i ~/Desktop/test.mp4 -i ~/Desktop/yumu.mp3 -filter_complex 
"[0]adelay=0|0[d1];
[1]adelay=5000|5000[aud1];[d1][aud1]amix" -shortest ~/Desktop/video/audio.mp4

配音&调节音量

./ffmpeg -y -i ~/Desktop/test.mp4 -i ~/Desktop/yumu.mp3 -filter_complex
 "[0]adelay=0|0,volume=0.5[d1];
[1]adelay=5000|5000,volume=1[aud1];[d1][aud1]amix" -shortest
 ~/Desktop/video/audio.mp4

特效(翻转)&亮度&对比度&饱和度

./ffmpeg -y -i ~/Desktop/test.mp4 -filter_complex "vflip,
eq=brightness=1:contrast=1:saturation=2"
 ~/Desktop/video/effects.mp4

设置音频拼接以最短的音频时长为准,使用滤镜duration=shortest

duration=shortest

音频处理&特效处理

./ffmpeg -y -i ~/Desktop/test.mp4 -i ~/Desktop/yumu.mp3 -shortest  
-filter_complex "[0]adelay=0|0,
volume=0.5[d1];[1]adelay=5000|5000,volume=1[aud1];[d1][aud1]
amix=inputs=2:duration=shortest;vflip"
 ~/Desktop/video/a_e.mp4

音频处理&特效处理&添加图片水印

./ffmpeg -y -i ~/Desktop/test.mp4 -i ~/Desktop/yumu.mp3 -i 
~/Desktop/logo.png  -filter_complex 
"[0]adelay=0|0,volume=0.5[d1];[1]adelay=5000|5000,volume=1[aud1];
[d1][aud1]amix=inputs=2:
duration=shortest;vflip[out];[2:v]scale=50:50[logo];
[out][logo]overlay=30:30"  ~/Desktop/video/a_e_w.mp4

音频处理&特效处理&添加图片水印&去除水印(多个)

./ffmpeg -y -i ~/Desktop/test.mp4 -i ~/Desktop/yumu.mp3 -i 
~/Desktop/logo.png  -filter_complex 
"[0]adelay=0|0,volume=0.5[d1];[1]adelay=5000|5000,volume=1[aud1];
[d1][aud1]amix=inputs=2:duration=shortest;
vflip[out];[2:v]scale=50:50[logo];[out][logo]overlay=30:30[r1];
[r1]delogo=x=40:y=40:w=80:h=50,delogo=x=800:
y=100:w=200:h=80"  ~/Desktop/video/a_e_w.mp4

音频处理&特效处理&添加文字水印

./ffmpeg -y -i ~/Desktop/test.mp4 -i ~/Desktop/yumu.mp3 -filter_complex
 "[0]adelay=0|0,volume=0.5[d1];
[1]adelay=5000|5000,volume=1[aud1];[d1][aud1]amix=inputs=2:duration=shortest;
drawtext=fontfile=/Library/Fonts/simsun.ttf:fontsize=72:
fontcolor=0x00FFBB:text=Test[m];[m]vflip"
  ~/Desktop/video/a_e_w.mp4


###音频处理&特效处理&添加文字水印&去除水印

./ffmpeg -y -i ~/Desktop/test.mp4 -i ~/Desktop/yumu.mp3 -filter_complex
 "[0]adelay=0|0,volume=0.5[d1];
[1]adelay=5000|5000,volume=1[aud1];[d1][aud1]amix=inputs=2:
duration=shortest;drawtext=fontfile=
/Library/Fonts/simsun.ttf:fontsize=72:fontcolor=0x00FFBB:text=Test[t1];
[t1]delogo=x=40:y=40:w=100:h=80[m];
[m]vflip"  ~/Desktop/video/a_e_w.mp4

音频处理&特效处理&添加文字水印&去除水印&裁剪处理

./ffmpeg -y -i ~/Desktop/test.mp4 -i ~/Desktop/yumu.mp3 -filter_complex 
"[0]adelay=0|0,volume=0.5[d1];
[1]adelay=5000|5000,volume=1[aud1];[d1][aud1]amix=inputs=2:duration=shortest;
drawtext=fontfile=
/Library/Fonts/simsun.ttf:fontsize=72:fontcolor=0x00FFBB:text=Test[t1];
[t1]delogo=x=40:y=40:w=100:h=80[m];
[m]vflip[mf];[mf]crop=500:500:10:10"  ~/Desktop/video/a_e_w.mp4

音频处理&特效处理&添加文字水印&去除水印&裁剪处理&翻转处理

./ffmpeg -y -i ~/Desktop/test.mp4 -i ~/Desktop/yumu.mp3 -filter_complex
 "[0]adelay=0|0,volume=0.5[d1];
[1]adelay=5000|5000,volume=1[aud1];[d1][aud1]amix=inputs=2:duration=shortest;
drawtext=fontfile=
/Library/Fonts/simsun.ttf:fontsize=72:fontcolor=0x00FFBB:text=Test[t1];
[t1]delogo=x=40:y=40:w=100:h=80[m];
[m]vflip[mf];[mf]crop=500:500:10:10[c];[c]transpose=1"  ~/Desktop/video/a_e_w.mp4

音频处理&特效处理&添加文字水印&去除水印&裁剪处理&翻转处理&比特率&分辨率处理

./ffmpeg -y -i ~/Desktop/test.mp4 -i ~/Desktop/yumu.mp3 -filter_complex 
"[0]adelay=0|0,volume=0.5[d1];
[1]adelay=5000|5000,volume=1[aud1];[d1][aud1]amix=inputs=2:
duration=shortest;drawtext=fontfile=
/Library/Fonts/simsun.ttf:fontsize=72:fontcolor=0x00FFBB:text=Test[t1];
[t1]delogo=x=40:y=40:w=100:h=80[m];
[m]vflip[mf];[mf]crop=500:500:10:10[c];[c]transpose=1"
 -b 847872 -s 1280x768 -strict -2  
~/Desktop/video/a_e_w.mp4

视频裁剪相关

eep_aspect,默认是0,设置为1可以保持原视频的宽高比

exact,默认为0,设置为1后裁剪的大小不会取整为最接近的值,而是准确值

out_w,out_h,in_w.in_h,ow,oh,iw,ih可以在参数中使用,分别代表输入输出的宽和高。

可以实现复杂一些的应用,比如crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(n/10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(n/7)

通过iw/ih或者a参数,指定宽高比

sar,input sample aspect ratio,输入样本宽高比

dar,input display aspect ratio, it is the same as (iw / ih) * sar,输入样本显示宽高比。

n,起始帧,从0开始

视频截取

从test.mp4中截取指定片段

./ffmpeg -y -i ~/Desktop/test.mp4 -filter_complex "[0]trim=0:10;atrim=0:10"
 ~/Desktop/video/110.mp4

视频拼接&视频剪切

./ffmpeg -y -i ~/Desktop/test.mp4 -i ~/Desktop/test-test.mp4 -filter_complex
 "[0:v]trim=start=0:end=10[v0];
[0:a]atrim=start=0:end=10[a0]; [v0][a0][1:v][1:a]concat=n=2:v=1:a=1[out]"
 -map [out] ~/Desktop/video/test.mp4

视频拼接

./ffmpeg -y -i ~/Desktop/test.mp4 -i ~/Desktop/test-test.mp4 -filter_complex
 "[0:v][0:a][1:v][1:a]concat=n=2:
v=1:a=1[out]" -map [out] ~/Desktop/video/test.mp4
./ffmpeg -y -i ~/Desktop/test.mp4 -i ~/Desktop/test-test.mp4 -filter_complex
 "[1:v]trim=start=0:end=10[mv0];
[1:a]atrim=start=0:end=10[ma0];[0:v][0:a][mv0][ma0] concat=n=2:v=1:a=1[out]"
 -map [out] ~/Desktop/video/test.mp4
./ffmpeg -y -i ~/Desktop/test.mp4 -filter_complex "trim=start=161:end=171,
setpts=PTS-STARTPTS;atrim=start=161:
end=171,asetpts=PTS-STARTPTS" ~/Desktop/video/test1.mp4

注: trim、atrim滤镜的start、end 是以秒为单位,只丢弃 end 以后的帧,如果 start不是从第一帧开始,则会被填充。

若要只保存 [start, end]中的内容,需要在trim中使用 setpts、asetpts滤镜

生成HLS视频流

./ffmpeg -y -ss 0 -t 30  -i ~/Desktop/test.mp4 -strict -2 -filter_complex
 'lutyuv=u=128:v=128'  
-bsf:v h264_mp4toannexb -f hls -hls_list_size 0 -hls_time 5 ~/Desktop/video/1150.m3u8

mp4转m3u8格式

./ffmpeg -i ~/Desktop/1567562112859373.mp4 -c copy -strict -2 
-bsf:v h264_mp4toannexb -f hls 
-hls_list_size 0 -hls_time 5 ~/Desktop/abc.m3u8

视频分割&拼接

./ffmpeg -y -i ~/Desktop/test.mp4 -filter_complex 
"[0:v]trim=start=0:end=10,setpts=PTS-STARTPTS[mv0];
[0:a]atrim=start=0:end=10,asetpts=PTS-STARTPTS[ma0];
[0:v]trim=start=161:end=171,setpts=PTS-STARTPTS[mv1];
[0:a]atrim=start=161:end=171,asetpts=PTS-STARTPTS[ma1];
[mv0][ma0][mv1][ma1]concat=n=2:v=1:a=1[out]" 
-map [out]  ~/Desktop/video/300.mp4 复制代码

视频分割&裁剪&拼接

./ffmpeg -y -i ~/Desktop/test.mp4 -filter_complex 
"[0:v]trim=start=0:end=10,setpts=PTS-STARTPTS[t];
[t]crop=200:200:0:0[mv0];[0:a]atrim=start=0:end=10,asetpts=PTS-STARTPTS[ma0];
[mv0][ma0]concat=n=1:v=1:a=1[out]"
 -map [out]  ~/Desktop/video/300.mp4

错误收集

Format mov,mp4,m4a,3gp,3g2,mj2 detected only with low score of 1, 
misdetection possible! moov atom not found

错误原因: 视频分割时未加 -movflags +faststart    ,表示将moov信息写入文件开头

解决方法:分割视频时加入 -movflags +faststart

输入/输出 时长控制

通过 -t 控制,放在 -i 前表示 输入指定长度视频;

放在最后表示 输出指定长度视频。

m3u8从开始播放,增加 -start_number 0

mp4转3GP

ffmpeg -y -i test.mpeg -ac 1 -acodec amr_nb -ar 8000 -s 176x144 -b 128 -r 15 -q 0 test.3gp

-q 0 保持原视频质量

3gp 是3GPP组织定义的一种用于手机上的多媒体文件格式,是简化版的"ISO 14496-1 Media Format",类似于MOV文件。这种文件文件只能使用MPEG-4/H.273视频编码和AMR-NB/AAC-LC音频编码.

mp4转webm

./ffmpeg -y -i /Users/long/Desktop/test.mp4 -s 1024x576 -b 96000 -vcodec libvpx -acodec libvorbis  
/Users/long/Desktop/智速视频转换/test.webm

mp4转 ogv

./ffmpeg -y -i /Users/long/Desktop/test.mp4 -s 1024x576 -b:v 1133076 -vcodec libtheora  
/Users/long/Desktop/智速视频转换/test.ogv

mp4转mxf

./ffmpeg -y -i /Users/long/Desktop/test.mp4 -s 1024x576 -b:v 1133076 -acodec pcm_s16le -ar 48000 
/Users/long/Desktop/智速视频转换/test.mxf

合并不同分辨率视频

./ffmpeg -y -i "/Users/long/Desktop/111.mp4" -i 
"/Users/long/Desktop/竖向.mp4" -filter_complex 
"[0:v]scale=1024:576:force_original_aspect_ratio=decrease,setsar=1,
pad=1024:576:(ow-iw)/2:(oh-ih)/2[0v];
[1:v]scale=1024:576:force_original_aspect_ratio=decrease,setsar=1,
pad=1024:576:(ow-iw)/2:(oh-ih)/2[1v];
[0v][0:a][1v][1:a]concat=n=2:v=1:a=1 [out]" -map "[out]"
 -s 1024x576 -b:v 1117233 -b:a 128115 
"/Users/long/Desktop/智速视频转换/合并文件_157775862868859.mp4"


本文地址:https://www.jinpeng.work/?id=9
若非特殊说明,文章均属本站原创,转载请注明原链接。
广告3

欢迎 发表评论:

  • 请填写验证码

日历

«    2025年4月    »
123456
78910111213
14151617181920
21222324252627
282930

控制面板

您好,欢迎到访网站!
  查看权限
广告2

退出请按Esc键