./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
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
默认为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
./ffmpeg -y -i ~/Desktop/test.mp4 -filter_complex "transpose=1" ~/Desktop/video/90.mp4
./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
./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滤镜
./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
./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 前表示 输入指定长度视频;
放在最后表示 输出指定长度视频。
ffmpeg -y -i test.mpeg -ac 1 -acodec amr_nb -ar 8000 -s 176x144 -b 128 -r 15 -q 0 test.3gp
3gp 是3GPP组织定义的一种用于手机上的多媒体文件格式,是简化版的"ISO 14496-1 Media Format",类似于MOV文件。这种文件文件只能使用MPEG-4/H.273视频编码和AMR-NB/AAC-LC音频编码.
./ffmpeg -y -i /Users/long/Desktop/test.mp4 -s 1024x576 -b 96000 -vcodec libvpx -acodec libvorbis /Users/long/Desktop/智速视频转换/test.webm
./ffmpeg -y -i /Users/long/Desktop/test.mp4 -s 1024x576 -b:v 1133076 -vcodec libtheora /Users/long/Desktop/智速视频转换/test.ogv
./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"