一、使用点播文件作为模拟直播源
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"