开发者-导航 猿导航

FFmpeg 常用命令

发布时间:

目录

FFmpeg 是领先的多媒体框架,能够解码、编码、 转码、复用、解复用、流式传输、过滤和播放几乎所有人类和机器创建的内容。它支持从最古老到最前沿的各种格式,无论它们是由某个标准委员会、社区还是公司设计的。它还具有高度的可移植性:FFmpeg 可以在 Linux、Mac OS X、Microsoft Windows、BSD、Solaris 等各种构建环境、机器架构和配置下编译、运行并通过我们的测试基础架构 FATE的测试。

关键帧 IPB #

帧率 每秒画面数量 0-30 一搬25帧

I #

表示关键帧,是最完整的帧画面,一般视频封面都选择I帧;

ffmpeg -i 666051400.mp4 -vf "select=eq(pict_type\,I)"  -vsync vfr -qscale:v 2 -f image2 ./%08d.jpg

P #

单预测帧,利用之前的I帧或P帧,采用运动预测的方式进行帧间预测编码;

ffmpeg -i 666051400.mp4 -vf "select=eq(pict_type\,P)"  -vsync vfr -qscale:v 2 -f image2 ./%08d.jpg

B #

双向预测帧,利用双向帧进行预测编码;

ffmpeg -i 666051400.mp4 -vf "select=eq(pict_type\,B)"  -vsync vfr -qscale:v 2 -f image2 ./%08d.jpg

均匀抽帧 #

-r 指定抽取的帧率,即从视频中每秒钟抽取图片的数量。1代表每秒抽取一帧。

ffmpeg -i 666051400.mp4 -r 20 -q:v 2 -f image2 %08d.000000.png

视频拆分帧 #

ffmpeg -i 666051400.mp4  %08d.000000.png

提取音频 #

ffmpeg -i 666051400.mp4 -vn -codec copy out.m4a

视频处理 #

视频推流 #

搭配 mediamtx 实时媒体服务器

rtsp 协议推流

ffmpeg -re -i output.mp4 -c copy -f rtsp rtsp://localhost:8554/mystream

rtsp 协议循环推流,添加 -stream_loop

ffmpeg -stream_loop -1 -re -i output.mp4 -c copy -f rtsp rtsp://localhost:8554/mystream

mediamtx #

下载 mediamtx releases,双击 exe 直接启动就好。

2025/08/20 14:44:31 INF MediaMTX v1.14.0
2025/08/20 14:44:31 INF configuration loaded from d:\Downloads\mediamtx_v1.14.0_windows_amd64\mediamtx.yml
2025/08/20 14:44:31 INF [RTSP] listener opened on :8554 (TCP), :8000 (UDP/RTP), :8001 (UDP/RTCP)
2025/08/20 14:44:31 INF [RTMP] listener opened on :1935
2025/08/20 14:44:31 INF [HLS] listener opened on :8888
2025/08/20 14:44:31 INF [WebRTC] listener opened on :8889 (HTTP), :8189 (ICE/UDP)
2025/08/20 14:44:31 INF [SRT] listener opened on :8890 (UDP)