ffmpeg介绍,安装

FFmpeg 是一款开源软件,用于生成处理多媒体数据的各类库和程序。
FFmpeg可以转码、处理视频和图片(调整视频、图片大小,去噪等)、打包、传输及播放视频。

 简单来说,ffmpeg就是一个音视频处理软件,

跨平台的音视频处理方案,可以在Linux,Windows,mac系统下运行

 

ffmpeg应用场景

播放:迅雷看看、qq音影、暴风影音
剪辑:剪映
转换:格式工厂

都是基于ffmpeg进行二次开发的。

 

ffmpeg框架

FFmpeg(Fastforword mpeg,音视频转换器)是一个开源免费跨平台的视频和音频流方案,它提供了录制/音视频编解码、转换以及流化音视频的完整解决方案。ffmpeg源码目录结构如下:

 

 FFmpeg框架中还提供了几个用于执行命令行完成音视频数据处理工具,包括fplay、ffprobe、ffserver,

具体解释如下:

ffplay Fast forword play,用ffmpeg实现的播放器

ffserver Fast forword server,用ffmpeg实现的rtsp服务器

ffprobe Fast forword probe,用来输入分析输入流

 

总体来说,
FFmpeg框架主要的作用在于对多媒体数据进行解协议、解封装、解码以及转码等操作。
FFmpeg中有很多比较重要的结构体,比如与输入输出(1/O)有关的结构体AVIOContext、URLContext、URLProtocol,

与封装格式有关的结构体AVFormatContext、AVInputFormat、AVOutputFormat,

与编解码有关的结构体AVCodec、AVCodecContext,

以及与音视频数据有关的结构体AVStream、AVPacket、AVFrame等等

 

ffmpeg有什么用途

FFmpeg在不停添加新的用例、工具和特性,这可以将FFmpeg扩展出无数个用途,比如:
1、视频处理
2、视频压缩
3、支持视频打包
4、支持音频、视频容器格式(几乎市面上的格式,全都支持)
5、ffprobe:
FFmpeg 还可用于了解视频结构并对其进行分析。
FFmpeg库构建了一个名为 ffprobe 的命令行,可用于查看和分析视频文件。
你可以使用 ffprobe 从视频中提取各种元数据、计算帧数、査找 IDR 帧的位置等等。

6、ffplay:
FFmpeg中还有一个播放视频的命令行工具fplay,无需任何花哨的视频播放软件,直接使用它就可以了。

 

ffmpeg安装

首先去官网:https://ffmpeg.org/

1,点击download

 

 2,点击下方windows,选择第二个,如下图

 3,点击后,会跳转到git中,点击下图红框中的zip进行下载。

 4,下载成功后,解压到自己本地目录;然后打开bin目录,复制路径,添加到环境变量中去。

 5,环境变量配置

我的电脑-属性-高级系统设置-环境变量-系统变量-path-新建-把bin目录路径添加进去

 6,然后win键+r键,打开cmd命令窗口,输入:ffmpeg -version 查看是否安装成功

 至此,介绍和安装完毕。

 

 然后可以通过help命令查看使用命令:ffmpeg -help  或者 ffmpeg -h,会打印出所有的使用帮助。

 常用的一些命令,可以在网上搜,有人整理过,比如下面我随便找了几个:

https://developer.baidu.com/article/details/3304927

https://baijiahao.baidu.com/s?id=1816114967992754157&wfr=spider&for=pc

https://blog.csdn.net/weixin_61503529/article/details/141828622

如果觉得命令使用麻烦的话,可以看B站上这位小姐姐的视频讲解,比如把命令保存到txt文件中,然后把txt修改成bat文件类型,然后点击即可。

视频链接如下:https://www.bilibili.com/video/BV1ALW2eXEAd/?spm_id_from=333.337.search-card.all.click&vd_source=e971bcae42a0cc5b4178c276ccebaac1

其它更多关于ffmpeg相关知识,可自行网上学习。

 

ps更新:

踩到的第一个坑,通过命令或脚本,开始录制视频。录制结束后生成mp4结尾文件,打开文件提示该文件使用中,然后发现该文件持续在写入,内存在变大。

问题原因

  1. FFmpeg 进程未正确终止

    • Python 脚本退出时,子进程可能仍在运行

  2. 资源未释放

    • 文件句柄/管道未关闭导致系统认为文件仍在使用

  3. 缓冲区未刷新

    • FFmpeg 的写入缓冲区未完全写入磁盘

原因是FFmpeg 进程在脚本结束后仍在后台运行,导致视频文件被锁定且持续写入。

可以通过命令结束掉这个进程。

1. Windows 系统

方法1:通过任务管理器(cmd命令窗口):taskkill /f /im ffmpeg.exe

方法2:通过进程PID(需提前记录PID):taskkill /f /pid <进程PID>

方法3:结束所有视频相关进程:taskkill /f /im ffmpeg.exe /im vlc.exe /im mpv.exe

2. Linux/macOS 系统

方法1:通过进程名(bash):pkill -f ffmpeg

方法2:通过进程PID:kill -9 <进程PID>

方法3:结束所有相关进程:killall ffmpeg vlc mpv

 

然后写脚本的时候,可以在在代码中添加进程清理逻辑。

posted @ 2025-07-02 19:44  干脆面666  Views(276)  Comments(0)    收藏  举报
/* 看板娘 */ /* 点击鼠标烟花效果 */