啥是 FFmpeg?
FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用 LGPL 或 GPL 许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库 libavcodec,为了保证高可移植性和编解码质量,libavcodec 里很多 code 都是从头开发的。--百度百科
安装
很多人都是编译安装费时费力...操作不好,不好使...这里推荐使用yum 源
安装
#升级最新 yum sudo yum install epel-release -y sudo yum update -y #安装 Nux Dextop Yum 源 sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm #安装开发包 sudo yum install ffmpeg ffmpeg-devel -y #测试 ffmpeg
常用的命令参数
#主要参数 -i 设定输入流 -f 设定输出格式 -ss 开始时间 #视频参数 -b 设定视频流量(码率),默认为 200Kbit/s -r 设定帧速率,默认为 25 -s 设定画面的宽与高 -aspect 设定画面的比例 -vn 不处理视频 -vcodec 设定视频编解码器,未设定时则使用与输入流相同的编解码器 #音频参数 -ar 设定采样率 -ac 设定声音的 Channel 数 -acodec 设定声音编解码器,未设定时则使用与输入流相同的编解码器 -an 不处理音频
简单的使用
#制作 M3U8 视频 #先用 ffmpeg 把 abc.mp4 文件转换为 abc.ts 文件 ffmpeg -y -i abc.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb abc.ts #再用 ffmpeg 把 abc.ts 文件切片并生成 playlist.m3u8 文件,5 秒一个切片 ffmpeg -i abc.ts -c copy -map 0 -f segment -segment_list playlist.m3u8 -segment_time 5 abc%03d.ts #为视频添加 logo ffmpeg -i input.mp4 -i iQIYI_logo.png -filter_complex overlay output.mp4 #将输入的 1920x1080 缩小到 960x540 输出 ffmpeg -i input.mp4 -vf scale=960:540 output.mp4 #抓取视频的一些帧,存为 jpeg 图片 #-r 表示每一秒几帧 #-q:v 表示存储 jpeg 的图像质量,一般 2 是高质量。 ffmpeg -i input.mp4 -r 1 -q:v 2 -f image2 pic-%03d.jpeg -ss 表示开始时间 -t 表示共要多少时间。 ffmpeg -i input.mp4 -ss 00:00:20 -t 10 -r 1 -q:v 2 -f image2 pic-%03d.jpeg #FFMPEG 截取视频中的图片作为封面 ffmpeg -ss 3 -i input.mp4 -vf "select=gt(scene\,0.4)" -frames:v 5 -vsync vfr -vf fps=fps=1/600 out%02d.jpg #FFMPEG 截取指定时长的视频 ffmpeg -i input.avi -vcodec copy -acodec copy -ss 00:30:00 -t 00:30:00 output2.avi #常用 ffmpeg -i foo.mp4 -codec copy -vbsf h264_mp4toannexb -map 0 -f segment -segment_list out.m3u8 -segment_time 10 out%03d.ts #还有很多..这些基本够用的...自己去官网看看吧