FFmpeg: 是一个免费的开源程序库,一个多媒体音视频处理分析工具软件,提供命令行方式调用,专门用来编辑处理各种音视频或图像
一、安装
- 官网地址:https://ffmpeg.org/
- 下载地址:https://ffmpeg.org/download.html
windows包:https://www.gyan.dev/ffmpeg/builds/
- Git Master Builds 是使用最新的 FFmpeg 源代码构建的版本,存在风险
- Release Builds 是经过官方稳定发布的版本,经过了全面测试和验证,具有较高的稳定性
下载完成后将文件解压到存放软件的磁盘位置,进入bin文件夹下,复制文件路径,配置系统环境变量
右键点击“我的电脑”,点“属性”,点“高级系统设置“,然后点”环境变量“
按照顺序,配置变量
最后在命令行窗口执行
ffmpeg version
,能看到版本信息就说明配置成功了
二、一些基础命令
基础命令
-version:显示查看版本(包括子模块的详细版本信息)。 -buildconf:显示构建配置,每行一个选项。 -formats:显示可用格式(包括设备)。 -filters:显示可用过滤器。 -codecs:显示支持的所有编解码器(包括视频、音频和字母编解码器)。 -protocols:显示可用的协议
简单操作
// 输入文件mp4封装格式转换为flv格式 ffmpeg -i C:\input.mp4 -c copy C:\output.flv ffmpeg -i C:\in.mp4 -vn -f mp3 C:\out.mp3 :提取纯mp3音频。 ffmpeg -i C:\in.mp4 -an -c:v copy C:\out.mp4 :输出静音视频。 ffmpeg -i C:\in.mkv -vn -an -c:s copy C:\out.srt :提取纯srt字幕 ffmpeg -i C:\in.mkv -map 0:s:0 -c:s copy C:\out.ass :从mkv格式的输入文件中提取第一个字幕流,并将其复制到输出文件中,输出文件的格式为 ASS 格式。 ffmpeg -i C:\in1.mp4 -i C:\in2.mp3 -map 0:v -map 1:a -c:v copy -f mp4 C:\out.mp4 :将in1文件的mp4视频流和in2文件的mp3音频流合并,并保存到mp4格式的输出文件out中。 ffmpeg -i C:\in1.mkv -i C:\in2.mkv -map 0:s:0 -map 1 -c copy -c:s copy C:\out.mkv :将in1文件的字幕流,与in2文件的所有视频流、音频流和字幕流合并,并保存到mkv格式的输出文件out中 ffprobe -v error -show_frames C:\in.mp4:分析视频文件,显示视频中每一帧的详细信息。“-v error”设置错误输出级别为 error;“show_frames”显示视频中每一帧的信息。如下是音频帧类型,然后 key_frame=1 表示这是 IDR frame ,如果key_frame=0表示这是 Non-IDR frame ffmpeg -ss 00:1:05 -i C:\in.mp4 -vframes 1 C:\out.jpg:从输入的mp4视频文件的1分5秒开始截取一帧图像,“-vframes 1”表示在视频流截取一帧,最后输出jpg格式图片 ffmpeg -ss 13 -to 15 -i C:\in.mp4 C:\out%03d.png:表示导出从视频的第13秒到第15秒,这两秒内所有帧图片。“%03d”的意思是让电脑自己以3位数字从小到大依次命名输出的文件,如001.png、002.png… // 录屏 无声音 ffmpeg -f gdigrab -i desktop -pix_fmt yuv420p C:\out.mp4 :这个命令使用 FFmpeg 工具来捕获 Windows 桌面并将其保存为一个 mp4 格式的视频文件。“-f gdigrab”表示使用 GDI (Graphics Device Interface) 来捕获屏幕;“-i desktop”指定要捕获的对象为desktop即桌面内容;“-pix_fmt yuv420p”指定输出视频的像素格式为 YUV 4:2:0 planar
推拉流
// 推流 ffmpeg -re -i E:/desktop/input.mp4 -c:v libx264 -preset veryfast -maxrate 1000k -bufsize 2000k -pix_fmt yuv420p -g 50 -c:a aac -b:a 160k -ar 44100 -ac 2 -f flv rtmp://server/live/stream // 桌面视频推到服务器 ffmpeg -f gdigrab -i desktop -c:v libx264 -preset veryfast -maxrate 1000k -bufsize 2000k -vf "format=yuv420p" -g 50 -f flv rtmp://rtmp服务器/hls/推流key // 将桌面屏幕推流到服务器 // 参数说明 -re:以原始视频的速度读取数据。 -i input.mp4:输入文件。 -c:v libx264:视频编码器使用H.264。 -preset veryfast:编码器预设,控制编码速度和质量。 -maxrate 1000k:视频流的最大码率。 -bufsize 2000k:码率控制缓冲区大小。 -pix_fmt yuv420p:像素格式。 -g 50:I帧间隔(关闭为1)。 -c:a aac:音频编码器使用AAC。 -b:a 160k:音频码率。 -ar 44100:采样率。 -ac 2:声道数。 -f flv:输出格式。 rtmp://server/live/stream:RTMP服务器地址和流名称。 // 拉流 ffmpeg -i rtmp://server/live/stream -c copy E:/desktop/output.flv // 输出为本地文件 ffmpeg -i rtmp://server/live/stream -f sdl - // 实时播放 ffmpeg -i rtmp://server/live/stream -f null - // 丢弃输出,仅用于分析和调试
1 条评论
幽默外壳包裹严肃内核,寓教于乐。