模块源码如何编译-开源ffmpeg(一)——介绍、演示与编译(windows)

前言

本来想省略前言,但最后觉得少了点什么,现在加上了。 可以算是ffmpeg开源系列博客的开始。

由于最近还在纠结ffmpeg项目,所以就萌生了记录一下使用ffmpeg的过程的想法。 由于ffmpeg非常大,有时可能只使用单个模块。 例如,作者经常使用ffmpeg进行拉取。 使用 webrtc 进行流式传输和播放。 所以想整理一下ffmpeg的整个模块或者大部分模块。 也算是开始录制这个系列的初衷。

以下内容由作者亲自操作,请放心食用。

1.ffmpeg简介

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

上面这段话翻译自ffmpeg网站

1.ffmpeg网站

官网地址:FFmpeg

文档地址:文档

API套接字文档地址:FFmpeg:MainPage

git地址:

官网编译工具连接地址:

官方编译文档:官方编译文档

2.ffmpeg模块介绍

ffmpeg 包括可供应用程序使用的 libavcodec、libavutil、libavformat、libavfilter、libavdevice、libswscale 和 libswresample 模块。 并且提供了ffmpeg、ffplay和ffprobe工具供最终用户转码和播放。

其中,各模块的作用如下

2. 使用示例 1. 下载工具

步骤进入官网编译库连接地址:

下载并解压后是

这三个工具的功能如下:

本文仅介绍ffplay进行demo播放,其他工具的使用将在博客其余部分展示

2.ffplay

使用ffplay播放本地mp3模块源码如何编译,播放音视频的基本命令是:

ffplay视频路径

可以看到它包含了文件宽度、音频编码格式、帧率等信息。 其实可以选择远程实时流地址,通过rtsp、rtmp、http等合约拉取播放,播放MP4。 这里我就不过多演示了。 。

3.基本播放命令介绍

播放控制:

音量控制:

3、源码编译

登录官网编译库连接地址,自行下载。 您也可以下载源代码并自行编译。 编译工具可以是MinGW或者cygwin,但是作者推荐安装msys,这是专门为编译ffmpeg而设计的工具。

1.git下载源码

git下载命令

git 克隆 git.ffmpeg.org git-ffmpeg.git/summary

您也可以通过官网下载zip包

2.编译工具介绍

由于最终编译仍然依赖MinGW等一些库,因此需要在Windows上模拟Linux编译环境。 工具有很多,比如Cygwin、MinGW等工具,最终目的都是为了搭建Linux编译环境。

这个链接是官方编译文档:官方编译文档介绍了多种编译形式。 本文使用MSYS2,MSYS2官网,因为MSYS2官网介绍了很多编译ffmpeg的工具。

使用MSYS2自动构建FFmpeg和其他媒体相关工具

3.MSYS2安装

根据编译文档的介绍,需要进行以下操作

从安装路径打开

按顺序输入命令

此时检查msys64mingw64bin路径下是否已经下载了MinGw

如上图所示,此时编译工具已经安装完毕

注意:需要检查系统环境变量中是否存在以下路径

4.编译

以下每个步骤都需要较长时间,请耐心等待

指定编译选项

以管理员模式打开mingw64.exe,进入ffmpeg路径,输入以下命令

./configure  --enable-shared --enable-debug --prefix=../ffmpeg_build --extra-cflags="-I../source/ffmpeg_build/include" --extra-ldflags="-LIBPATH:../source/ffmpeg_buid/lib"

对上述命令的介绍:

./configure:执行当前目录下的脚本文件configure,即ffmpeg文件夹。 打开configure文件,会看到一些ffmpeg常用的编译命令的注释,比如–enable-shared等。

--enable-shared:编译成动态链接库(dll)。

--enable-debug:允许调试 ffmpeg 源代码。

--prefix=../ffmpeg_build:指定编译结果的存储路径为.../ffmpeg_build。 这里是相对路径。

--extra-cflags="-I../source/ffmpeg_build/include": cflags 代表 C 编译器的选项。 -I 表示将dir目录添加到头文件的搜索路径列表中。 这里的dir目录指定为.../ffmpeg_build,也写成相对路径。

--extra-ldflags="-LIBPATH:.../source/ffmpeg_buid/lib":ldflags设置gcc等编译器使用的一些优化参数,也可以指定上面的库文件的位置。 -LIBPATH:也可以简写为-L,后面跟库文件的目录。

输入编译命令

make-j4&&makeinstall

上图是编译后的图片

现在就可以查看编译后的文件了

找到步骤1中指定的生成路径,现在可以发现所有的库和头文件都已经生成了,如右图所示。

5. 小贴士

如果不想生成exe,可以禁用它,这样可以节省一些时间

/configure--toolchain=msvc--disable-ffplay--disable-ffmpeg--disable-ffprobe--disable-static--disable-debug--enable-asm--enable-version3--enable-shared

总结

以上就是开发环境的搭建,包括对ffmpeg的理解以及如何初步使用。 最重要的是我们开发者如何编译生成动态库的过程。

如果对您有帮助,请帮忙点个赞!

原创开源ffmpeg(一)--介绍、演示与编译(windows)_ffmpeg编译_山河君的博客-CSDN博客

★文末名片可免费发放音视频开发学习资料,包括(FFmpeg、webRTC、rtmp、hls、rtsp、ffplay、srs)以及音视频学习路线图等。

见下文!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 源码编译 模块源码如何编译-开源ffmpeg(一)——介绍、演示与编译(windows) https://www.wkzy.net/game/192544.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务