ffmpeg常用命令

一、使用点播文件作为模拟直播源

ffmpeg.exe -re -stream_loop -1 -i 1280.mp4 -vcodec copy -acodec copy -f flv rtmp://192.168.1.200/live/test1

二、将多个视频文件合并

新建一个list.txt文件,里面内容

file clip1.mp4
file clip2.mp4
file clip3.mp4

合并命令

ffmpeg.exe -f concat -i list.txt -vcodec copy -acodec copy all.mp4

三、文件截取

ffmpeg.exe -ss 0:10:30 -t 0:01:0 -i all.mp4 -vcodec copy -acodec copy clip1.mp4

-ss 指定截取的开始时间
-t 指定持续的时间

四、将左右半宽的3D视频转成正常的观看比例

ffmpeg.exe -i "E:\BaiduYunDownload[3D电影][k3d.cn][完美中字]阿凡达.AVATAR.3DBDRip.HSBS.1080P-C3D.mkv" -vcodec libx264 -preset fast -crf 25 -s 1920x540 -aspect 32:9 -acodec copy 1.mp4

五、ffmpeg一个命令截两种分辨率封面图

ffmpeg -skip_frame nokey -i 1280.mp4 -filter_complex "thumbnail=100,split[i1][i2];[i2]crop=960:720:160:0,scale=480:360[o2]" -map [i1] -frames:v 1 2.jpg -map [o2] -frames:v 1 1.jpg

thumbnail filter从指定的n帧图像中,自动选取最佳的封面图

六、转码小体积的caf铃声

ffmpeg.exe -i call.caf -ac 1 -ar 32000 -acodec adpcm_ima_qt call2.caf

七、设置libx264 vbv-bufsize和vbv-maxrate

ffmpeg.exe -i "2.mp4" -vcodec libx264 -preset veryslow -s 960x540 -bufsize 4000k -maxrate 2000k -acodec copy 1.mp4

八、画面翻转

垂直翻转
ffmpeg -i in.avi -vf "vflip" out.avi

垂直翻转再水平翻转
ffmpeg -i in.avi -vf "vflip, hclip" out.avi

九、检测视频音量,并调节

ffmpeg.exe -i video.avi -af "volumedetect" -f null NUL
检测视频的最大音量,从max_volume中知道音频的最大音量

然后调用
ffmpeg -i input.wav -af "volume=5dB" output.mp3

进行音量调节

参考
http://ffmpeg.org/ffmpeg-filters.html#volumedetect

十、叠加水印

ffmpeg.exe -i input.mp4 -vf "movie=logo.png,scale=400:400 [watermark]; [in][watermark] overlay=main_w-overlay_w-50:main_h-overlay_h-50 [out]" out.mp4

这样水印是放在右下角的。放在其他位置参考
http://my.oschina.net/zhuanghaoren/blog/200684

叠加2个水印
ffmpeg.exe -i "clip-1.mp4" -i logo1.png -i logo2.png -filter_complex "overlay=main_w-overlay_w-50:50, overlay=50:50" - vcodec libx264 -preset medium -acodec copy 1.mov

ffmpeg.exe -i "clip-1.mp4" -vf "movie=logo1.png [logo1]; movie=logo2.png [logo2]; [in][logo1] overlay=main_w-overlay_w- 50:50 [tmp]; [tmp][logo2] overlay=50:50" -vcodec libx264 -preset medium -acodec copy 1.mov

十一、计算视频PSNR

ffmpeg.exe -i source.avi -i encoded.avi -filter_complex "psnr" -f null -

十二、把图片转成yuv文件

ffmpeg -i 9f.png -pix_fmt yuv420p -s 480x720 d:\1.yuv

十三、视频剪裁画面

ffmpeg -i 1.MOV -vf crop=1080:1080:420:0 -c:v libx264 -b:v 3000k -an 1.mp4

crop的四个参数,with:height:x:y

十四、将两个视频画面左右放在一起

ffmpeg -i left.mp4 -i right.mp4 -filter_complex "[0:v]scale=iw/2:ih[left],[1:v]scale=iw/2:ih[right],[left][right]framepack=sbs" -c:v libx264 all.mp4

同理,要将两个视频画面上下放在一起

ffmpeg -i down.mp4 -i up.mp4 -filter_complex "[0:v]scale=iw:ih/2[down],[1:v]scale=iw:ih/2[up],[down][up]framepack=tab" -c:v libx264 all.mp4

十五、将音视频文件合并在一起

ffmpeg -i video2.avi -i audio.mp3 -c copy output.avi

十六、把pcm文件转成wav文件,方便使用播放器听效果

ffmpeg -f s16le -ar 48000 -ac 2 -i 1.pcm 1.wav

同样反过来,把wav转换成pcm,方便测试程序读取

ffmpeg -i 1.wav -f s16le 1.pcm

十七、将9:16的图片转成16:9,并在左右添加黑边

ffmpeg -i 1.jpg -vf "scale=-1:1080,pad=1920:1080:(ow-iw)/2:0" 2.jpg

十八、从摄像头采集视频,并推流rtmp

先找出dshow系统中的摄像头名字
ffmpeg -list_devices true -f dshow -i dummy

采集推流的命令
ffmpeg -f dshow -i video="Logitech HD Webcam C270" -vcodec libx264 -pix_fmt yuv420p -s 640*480 -g 45 -tune zerolatency -f flv "rtmp://192.168.3.34:18094/live/screen"

你可能感兴趣的:(ffmpeg常用命令)