主要参数
-i 设定输入流
-f 设定输出格式
-ss 开始时间
视频参数
-b 设定视频流量,默认为200kbit/s
-r 设定帧速率,默认为25
-s 设定画面的宽与高
-aspect 设定画面的比例
-vn 不处理视频
-vcodec 设定视频编解码器,未设定时则使用与输入流相同的编码器
音频参数
-ar 设置采样率
-ac 设定声音的Channel数
-acodec 设定声音编解码器,未设定时则使用与输入流相同的编解码器
-an 不处理音频
常用功能
去掉视频中的音频
-an 去掉音频 -vcodec 视频选项,一般后面加copy表示拷贝
1
   | ffmpeg -i input.mp4 -vcodec copy -an output.mp4
   | 
 
提取视频中的音频
-vn 去掉视频;-acodec 音频选项,一般后面加copy表示拷贝
1
   | ffmpeg -i 0.blv -f mp3 1.mp3
   | 
 
音视频合成
-y 覆盖输出文件
1
   | ffmpeg -y -i input.mp4 -i input.mp3 -vcodec copy -acodec copy output.mp4
   | 
 
剪切视频
-ss 开始时间 -t 持续时间
1
   | ffmpeg -ss 0:1:30 -t 0:0:20 -i input.mp4 -vcodec copy -acodec copy output.mp4
   | 
 
视频截图
-s 设置分辨率 -f 强迫采用格式fmt
1
   | ffmpeg -i test.mp4 -f image2 -t 0.001 -s 320*240 image-%3d.jpg
   | 
 
视频分解为图片
-r 指定截屏频率
1
   | ffmpeg -i test.mp4 -r 1 -f image2 image-%3d.jpg
   | 
 
将图片合成视频
1
   | ffmpeg -f image2 -i image%d.jpg output.mp4
   | 
 
视频拼接
1
   | ffmpeg -f concat -i filelist.txt -c copy output.mp4
   | 
 
将视频转为gif
-pix_fmt 指定编码
1
   | ffmpeg -i input.mp4 -ss 0:0:30 -t 10 -s 320*240 -pix_fmt rgb24 output.gif
   | 
 
将视频前30帧转为gif
1
   | ffmpeg -i input.mp4 -vframes 30 -f gif output.gif
   | 
 
旋转视频
1
   | ffmpeg -i input.mp4 -vf rotate=PI/2 output.mp4
   | 
 
缩放视频
iw是输入的宽度,iw/2就是一半,-1为保持宽高比
1
   | ffmpeg -i input.mp4 -vf scale=iw/2:-1 output.mp4
   | 
 
视频变速
1
   | ffmpeg -i input.mp4 -filter:v setpts=0.5*PTS output.mp4
   | 
 
音频变速
1
   | ffmpeg -i input.mp3 -filter:a atempo=2.0 output.mp3
   | 
 
音视频同时变速,但是音视频为互倒关系
1
   | ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mp4
   | 
 
视频添加水印
main_w-overlay_w-10 视频的宽度-水印的宽度-水印边距
1
   | ffmpeg -i input.mp4 -i logo.jpg -filter_complex [0:v][1:v]overlay=main_w-overlay_w-10:main_h-overlay_h-10[out] -map [out] -map 0:a codec:a copy output.mp4
   | 
 
m3u8转mp4
1
   | ffmpeg -i "http://cache.utovr.com/201508270528174780.m3u8" -bsf:a aac_adtstoasc -vcodec copy -c copy -crf 50 "1.mp4"
   | 
 
1
   | ffmpeg -i http://.../playlist.m3u8 -c copy -bsf:a aac_adtstoasc output.mp4
   | 
 
mp4转m3u8
1
   | ffmpeg -i input.mp4 -profile:v baseline -level 3.0 -s 640x360 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls index.m3u8
   | 
 
将文件按时长分片
1
   | ffmpeg -i in.mkv -f segment -segment_time 10 -segment_format_options movflags=+faststart out%03d.mp4
   | 
 
文件长度截取
-y 表示如果输出文件已存在则覆盖
1
   | ffmpeg  -i ./plutopr.mp4 -vcodec copy -acodec copy -ss 00:00:10 -to 00:00:15 ./cutout1.mp4 -y
   | 
 
获取视频的所有帧
1
   | ffmpeg -i 1.mp4 -q:v 2 -f image2 image%07d.jpeg
   | 
 
其中-i 后面是输入文件,-q:v 2 q代表质量quality, v代表视频流,2是控制质量的参数。-f指定输出的格式是image2. %07d是图片命名的pattern
H264视频转ts视频流
1
   | ffmpeg -i test.h264 -vcodec copy -f mpegts test.ts
   | 
 
H264视频转mp4
1
   | ffmpeg -i test.h264 -vcodec copy -f mp4 test.mp4
   | 
 
ts转mp4
1
   | ffmpeg -i test.ts -acodec copy -vcodec copy -f mp4 test.mp4
   | 
 
mp4转flv
1
   | ffmpeg -i test.mp4 -acodec copy -vcodec copy -f flv test.flv 
   | 
 
转换文件为3GP格式
1
   | ffmpeg -y -i test.mpeg -bitexact -vcodec h263 -b 128 -r 15 -s 176x144 -acodec aac -ac 2 -ar 22500 -ab 24 -f 3gp test.3gp
   | 
 
转换文件为3GP格式v2
1
   | ffmpeg -y -i test.wmv -ac 1 -acodec libamr_nb -ar 8000 -ab 12200 -s 176x144 -b 128 -r 15 test.3gp
   | 
 
使用ffmpeg编码得到高质量的视频
1
   | ffmpeg.exe -i "D:\Video\Fearless\Fearless.avi" -target film-dvd -s 720x352 -padtop 64 -padbottom 64 -maxrate 7350000 -b 3700000 -sc_threshold 1000000000 -trellis -cgop -g 12 -bf 2 -qblur 0.3 -qcomp 0.7 -me full -dc 10 -mbd 2 -aspect 16:9 -pass 2 -passlogfile "D:\Video\ffmpegencode" -an -f mpeg2video "D:\Fearless.m2v"
   | 
 
转换指定格式文件到FLV格式
1 2
   | ffmpeg.exe -i test.mp3 -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 f:\test.flv  ffmpeg.exe -i test.wmv -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 f:\test.flv
   | 
 
转换文件为3GP格式
1
   | ffmpeg -i test.avi -y -b 20 -s sqcif -r 10 -acodec amr_wb -ab 23.85 -ac 1 -ar 16000 test.3gp
   | 
 
转换文件为MP4格式
1 2
   | ffmpeg  -y  -i input.wmv  -f mp4 -async 1-s 480x320  -acodec libfaac -vcodec libxvid  -qscale 7 -dts_delta_threshold 1 output.mp4 ffmpeg  -y  -i source_video.avi input -acodec libfaac -ab 128000 -vcodec mpeg4 -b 1200000 -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X final_video.mp4
   | 
 
将一段音频与一段视频混合
1
   | ffmpeg -i son.wav -i video_origine.avi video_finale.mpg
   | 
 
将一段视频转换为DVD格式
1
   | ffmpeg -i source_video.avi -target pal-dvd -ps 2000000000 -aspect 16:9 finale_video.mpeg
   | 
 
转换一段视频为DivX格式
1
   | ffmpeg -i video_origine.avi -s 320x240 -vcodec msmpeg4v2 video_finale.avi
   | 
 
udp视频流的推送
1
   | ffmpeg -re  -i 1.ts  -c copy -f mpegts   udp://192.168.0.106:1234
   | 
 
视频拼接
裸码流的拼接,先拼接裸码流,再做容器的封装
1
   | ffmpeg -i "concat:test1.h264|test2.h264" -vcodec copy -f h264 out12.h264
   | 
 
截取一张352x240尺寸大小的,格式为jpg的图片
1
   | ffmpeg -i test.asf -y -f image2 -t 0.001 -s 352x240 a.jpg
   | 
 
把视频的前30帧转换成一个Animated Gif
1
   | ffmpeg -i test.asf -vframes 30 -y -f gif a.gif
   | 
 
截取指定时间的缩微图,-ss后跟的时间单位为秒
1
   | ffmpeg -i test.avi -y -f image2 -ss 8 -t 0.001 -s 350x240 test.jpg
   | 
 
转换wav到mp2格式
1
   | ffmpeg -i /tmp/a.wav -ab 64 /tmp/a.mp2 -ab 128 /tmp/b.mp2 -map 0:0 -map 0:0
   |