ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件]
1.裁切
视频剪切 | ffmpeg -ss -t -i input.avi -vcodec copy -acodec copy output.avi |
改变尺寸 | ffmpeg -i juping-text.mp4 -vf scale=1920:1080,setdar=16:9 juping-default.mp4 |
屏幕改变尺寸 | ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -i ~/test.avi -s 800×600 ~/test-800-600.avi |
2.滤镜
语法 | [input_link_lable1][input_link_lable2]... filter_name=parameters [output_link_lable1][output_link_lable12]... |
3.水印
图文水印 | ffmpeg -i juping.mp4 -vf "drawtext=fontfile=simhei.ttf: text='百度聚屏 成就您的品牌':x=main_w/2 - text_w/2:y=main_h/2 - text_h/2:fontcolor=white:shadowy=2:fontsize=60" juping-text.mp4 |
去掉水印 | ffmpeg -i input.mp4 -vf delogo=0:0:220:90:100:1 output.mp4 |
4.取帧
提取图片 | ffmpeg -i juping.mp4 -ss 00:00:01 -t 1 -r -q:v 2 -f image2 pic-%03d.jpg |
截取图片 | ffmpeg -i test.asf -y -f image2 -t 0.001 -s 352x240 a.jpg |
转换 | ffmpeg -i test.asf -vframes 30 -y -f gif a.gif |
缩微图 | ffmpeg -i test.avi -y -f image2 -ss 8 -t 0.001 -s 350x240 test.jpg |
截取指定时间的缩微图,-ss后跟的时间单位为秒
5.播放
万能播放器 | https://edu.csdn.net/course/detail/6842 |
6.分离视频音频流
分离频流 | ffmpeg -i input_file -vcodec copy -an output_file_video |
分离频流 | ffmpeg -i input_file -acodec copy -vn output_file_audio |
7.封装音频+视频
合成 | ffmpeg –i –i –vcodec copy –acodec copy $\color{red} |
视频拼接 | ffmpeg -i "concat:test1.h264|test2.h264" -vcodec copy -f h264 out12.h264 |
8.视频转码
转码为码流原始文件 | ffmpeg –i test.mp4 –vcodec h264 –s 352*278 –an –f m4v test.264 |
转码为码流原始文件 | ffmpeg –i test.mp4 –vcodec h264 –bf 0 –g 25 –s 352*278 –an –f m4v test.264 |
转码为封装文件 | ffmpeg –i test.avi -vcodec mpeg4 –vtag xvid –qsame test_xvid.avi |
9.视频压缩
压缩 | ffmpeg -i -r 10 -b:a 32k |
10.声道
双声道合并单声道 | ffmpeg -i input -ac 1 output.aac |
双声道提取 | ffmpeg -i input.aac -map_channel 0.0.0 left.aac -map_channel 0.0.1 right.aac |
双声道转双音频流 | ffmpeg -i input.aac -filter_complex channelsplit=channel_layout=stereo output.mka |
单声道转双声道 | ffmpeg -i left.aac -ac 2 output.m4a |
两个音频源合并双声道 | ffmpeg -i left.aac -i right.aac -filter_complex "[0:a][1:a] amerge=inputs=2[aout]" -map "[aout]" output.mka |
音频音量获取 | ffmpeg -i output.wav -filter_complex volumedetect -c:v copy -f null /dev/null |
绘制音频波形 | ffmpeg -i output.wav -filter_complex "showwavespic=s=640x120" -frames:v 1 output.png |
11.直播相关
屏幕录制 | ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -vd x11:0,0 -s 1024x768 ~/test.avi |
摄像头录制 | ffmpeg -f video4linux -s 320*240 -r 10 -i /dev/video0 test.asf |
推rtmp 流 | ffmpeg -re -i ~/2012.flv -f flv rtmp://192.168.1.102/myapp/xxx |
X.
(1)主要参数
-i | 设定输入流 |
-f | 设定输出格式 |
-ss | 开始时间 |
(2)视频参数
-b | 设定视频流量,默认为200Kbit/s |
-r | 设定帧速率,默认为25 |
-s | 设定画面的宽与高 |
-aspect | 设定画面的比例 |
-vn | 不处理视频 |
-vcodec | 设定视频编解码器,未设定时则使用与输入流相同的编解码器 |
(3)音频参数
-ar | 设定采样率 |
-ac | 设定声音的Channel数 |
-acodec | 设定声音编解码器,未设定时则使用与输入流相同的编解码器 |
-an | 不处理音频 |