FFMPEG命令集合:
主要参数
-i 设定输入流
-f 设定输出格式(format)
-ss 开始时间
-t 时间长度
音频参数
-aframes 设置要输出的音频帧数
-b:a 音频码率
-ar 设定采样率
-ac 设定声音的channel数
-acodec 设定声音的编解码器
-an 不处理音频
-af 音频过滤器
视频参数
-vframes 设置要输出的视频帧数
-b 设定视频码率
-b:v 视频码率
-r 设定桢速率
-s 设定画面的宽和高
-vn 不处理视频
-aspect 设置横纵比4:3,16:9或1.3333,1.7777
-vcodec 设定视频编解码器
-vf 视频过滤器
获取帮助文档
ffmpeg -h [full]
获取视频文件信息
ffmpeg -i test.mp4
视频格式转化
ffmpeg -i test.mp4 test.avi
截取视频:
-ss 开始时间
-t 截取时长
-c copy 拷贝源视频信息
-vcodec 拷贝原视频视频编码
-acodec 拷贝原视频音频编码
ffmpeg -ss 0 -t 10 -i test.mp4 -c copy test_10.mp4
ffmpeg -ss 00:00:00 -t 00:00:10 -i test.mp4 -vcodec copy -acodec copy test_10.mp4
视频拼接
创建一个a.txt文件,内容如下(需要拼接的素材,一行一个):
file 'a.mp4'
file 'test.pm4'
ffmpeg -f concat -i a.txt -vcodec copy -acodec copy output.mp4
或者
ffmpeg -i "concat:1.mp4|2.mp4" -codec copy output.mp4
修改视频分辨率
-vf:视频过滤器
ffmpeg -i test.pm4 -vf scale=1280*720 720p.mp4
获取视频的音频和视频
音频:ffmpeg -i test.mp4 -vn test_no_video.mp3
视频:ffmpeg -i test.mp4 -an test_no_audio.mp4
获取视频图片
-r 每秒提取多少图片
ffmpeg -i test.mp4 -r 1 -f image2 image_%5d.png
生成m3u8和ts视频文件(点播)
ffmpeg -i test.mp4 -vcodec copy -acodec copy -hls_list_size 0 -f hls hls/index.m3u8
视频转码
ffmpeg -i test.avi -vcodec libx264 -acodec aac avi2mp4.mp4
跑马灯效果:
-r 一秒钟多少桢
ffmpeg -i test.mp4 -acodec aac -vcodec libx264 -r 30 -g 300 -vf "drawtext=fontfile=monbaiti.ttf:text='YooCheese':x=15:y=h-800:enable=lt(mod(t\,3)\,2):fontsize=80:fontcolor=orange@0.5:shadowy=2" -y test_10.mp4
更改音频信息
ffmpeg -i test.mp4 [-aframes 200] -b:a 198k -ar 48000 -ac 2 -acodec libmp3lame out.mp3
提取三秒的YUV数据
ffmpeg -i test.mp4 -t 3 -pix_fmt yuv420p yuv420P_orign.yuv
提取三秒的数据,分辨率转为320*240
ffmpeg -i test.mp4 -t 3 -pix_fmt yuv420p -s 320*240 yuv420P_320*240.yuv
提取RGB
ffmpeg -i test.mp4 -t 3 -pix_fmt rgb24 -s rgb.rgb
RGB和YUV转化
ffmpeg -pix_fmt yuv420p -i yuv420p_origin.yuv -pix_fmt rgb24 rgb_text.rgb
转为ts格式
ffmpeg -i test.mp4 -codec copy -vbsf 1.ts
图片转视频
ffmpeg -f image2 -i frame%03d.jpg -r 25 video.pm4
视频生成gif
ffmpeg -i test.mp4 -t 5 -r 1 image1.gif
将gif转视频
ffmpeg -f gif -i image1.gif image2.mp4
评论区