怎样给网站做流量,深圳专业医疗网站建设,开发三味是啥,做学校网站的济南公司目录
一、下载FFmpeg的编译源码
二、编译源码
三、ffmpeg工具结构解析
1、bin目录
2、include库
3、lib库
四、注意事项
五、可能出现的一些问题
1、某些工具未安装/版本过久
2、缺少pkg-config工具
3、缺少ffmplay FFmpeg 是一个开源的跨平台音视频处理工具集…目录
一、下载FFmpeg的编译源码
二、编译源码
三、ffmpeg工具结构解析
1、bin目录
2、include库
3、lib库
四、注意事项
五、可能出现的一些问题
1、某些工具未安装/版本过久
2、缺少pkg-config工具
3、缺少ffmplay FFmpeg 是一个开源的跨平台音视频处理工具集它包含了一系列的程序、库和工具用于录制、转换和流处理音视频文件和流媒体。
一、下载FFmpeg的编译源码 进入网站http://ffmpeg.org/download.html 在网站中先择git地址进行下载。如果git下载比较慢也可以将选择浏览器下载后转移到Linux虚拟机中或直接在Ubuntu的内置浏览器中进行下载。 二、编译源码 执行下述命令
./configure --prefix/usr/local/ffmpeg --enable-debug3 --enable-ffplay
sudo make -j 4
sudo make install如果编译成功那么将会在安装路径/user/local/ffmpeg下出现如下子目录 三、ffmpeg工具结构解析 下面我们来看一下安装好的ffmpeg中的这些子目录中我们需要使用到的东西 bin: bin 目录一般存放可执行文件binaries即程序的二进制文件。在 FFmpeg 中这个目录存放了 ffmpeg、ffplay、ffprobe 等命令行工具的可执行文件。当你在终端中输入命令时系统会在这个目录中查找对应的可执行文件来执行命令。 include: include 目录通常存放头文件header files这些文件包含了程序接口的声明和定义供开发者在自己的程序中引用和调用。在 FFmpeg 中这个目录存放了各个模块的头文件如 libavcodec、libavformat 等模块的头文件允许开发者在自己的代码中使用 FFmpeg 的功能。 lib: lib 目录一般存放库文件libraries这些文件包含了程序在编译时链接的代码和函数。在 FFmpeg 中这个目录存放了各个模块的静态库文件如 .a 文件和动态库文件如 .so 文件供开发者在自己的应用程序中链接使用 FFmpeg 提供的功能。 share: share 目录通常存放共享文件shared data这些文件可以被多个程序或者用户共享使用。在 FFmpeg 中这个目录可能包含一些共享的配置文件、文档或者其他资源文件帮助用户更好地使用和理解 FFmpeg 的功能和特性。 1、bin目录 重点主要在于bin目录下的三个工具 ffmpeg: ffmpeg 是 FFmpeg 项目中最主要的命令行工具之一用于音视频的录制、转换以及流处理。它支持从多种输入源文件、摄像头、网络流等读取音视频数据然后可以对其进行编解码、过滤、转码等操作最后将处理后的结果输出到文件或者流媒体服务器中。 ffplay: ffplay 是 FFmpeg 提供的一个简单音视频播放器基于 SDLSimple DirectMedia Layer库。它能够播放多种音视频格式支持快进、快退、循环播放等基本功能是调试和测试音视频文件的方便工具。 ffprobe: ffprobe 是 FFmpeg 提供的音视频流分析工具用于分析媒体文件或者流的详细信息。它可以提取音视频文件的元数据如分辨率、编码格式、帧率、比特率等帮助用户了解和分析媒体文件的特性和结构。 2、include库 用于后续的二次开发 libavcodec: 这是 FFmpeg 中最重要的模块之一包含了各种音视频编解码器。libavcodec 提供了将音频和视频数据编码和解码的功能。例如它支持将视频从一种格式转换为另一种格式如将 H.264 编码的视频转换为 MPEG-2 编码的视频。FFmpeg 中的许多命令行工具和应用程序都依赖于 libavcodec 来处理音视频编解码任务。 libavdevice: 这个模块包含了各种设备的输入和输出支持代码。libavdevice 允许 FFmpeg 支持不同的音视频输入和输出设备如摄像头、音频输入设备、视频捕获卡等。例如使用 libavdevice 可以从摄像头捕获视频数据或从麦克风捕获音频数据。 libavfilter: libavfilter 模块实现了音视频过滤器框架。这个模块允许用户应用各种音视频过滤器来处理音视频流。过滤器可以用来进行裁剪、缩放、旋转、去噪、水印等操作。FFmpeg 中的 ffmpeg 命令行工具通过 libavfilter 支持将一个或多个过滤器应用到输入音视频流并将输出写入到文件或者流媒体服务器。 libavformat: libavformat 提供了音视频格式的封装和解封装功能。这个模块允许 FFmpeg 支持从各种音视频格式中读取数据以及将音视频数据封装为不同的格式如 MP4、AVI、FLV 等。通过 libavformatFFmpeg 能够处理从本地文件到网络流媒体的广泛应用场景。 libavutil: libavutil 是一个工具库提供了各种用于音视频处理的工具函数。这个模块包含了用于数学运算、数据结构操作、字节操作、日志、时间处理等功能的工具函数。许多 FFmpeg 的其他模块都依赖于 libavutil 中的函数来实现它们的功能。 libswresample: libswresample 提供了音频重采样功能。这个模块用于将音频数据从一个采样率或格式转换为另一个采样率或格式以便匹配特定的音频设备或格式要求。FFmpeg 中处理音频流时经常需要使用 libswresample 来进行采样率调整或格式转换。 libswscale: libswscale 提供了视频图像缩放和颜色空间转换的功能。这个模块可以将视频帧从一种像素格式转换为另一种像素格式以及进行图像大小的缩放和裁剪。FFmpeg 使用 libswscale 来处理视频流中的图像缩放、格式转换以及色彩空间的转换例如将 RGB 格式的图像转换为 YUV 格式。 3、lib库 libavcodec.a: libavcodec.a 是 FFmpeg 中的静态链接库包含了各种音视频编解码器的实现代码。静态库在编译时会被直接链接到应用程序中使得应用程序在运行时不再需要动态加载。 libavdevice.a: libavdevice.a 是包含各种音视频输入和输出设备支持代码的静态链接库。它允许应用程序通过 FFmpeg 访问和操作音视频设备如摄像头、音频输入设备等。 libavfilter.a: libavfilter.a 包含音视频过滤器框架的实现代码。这个库允许应用程序使用各种过滤器对音视频流进行处理如裁剪、缩放、旋转、去噪等操作。 libavformat.a: libavformat.a 包含音视频格式封装和解封装的实现代码。它允许应用程序读取和写入各种音视频格式的文件和流媒体。 libavutil.a: libavutil.a 是 FFmpeg 的实用工具函数库的静态链接库。它包含了各种常用的工具函数用于数学运算、数据结构操作、日志处理等。 libswresample.a: libswresample.a 包含音频重采样功能的实现代码。它允许应用程序将音频数据从一个采样率或格式转换为另一个采样率或格式。 libswscale.a: libswscale.a 包含视频图像缩放和颜色空间转换功能的实现代码。它允许应用程序对视频帧进行大小缩放、像素格式转换以及色彩空间转换。 pkgconfig: pkgconfig 目录包含了用于 pkg-config 工具的配置文件。这些文件允许开发者在编译和链接应用程序时通过 pkg-config 查询 FFmpeg 库的编译和链接选项。 四、注意事项 如果需要关闭静态库打开动态库可以在第一条命令的末尾再添加下述命令
--disable-static --enable-shared 在编译过程中如果对于一些参数的意义不太清楚可以通过下述命令来查看命令的含义
./configure -help | grep 需要查看的参数名 五、可能出现的一些问题
1、某些工具未安装/版本过久 执行下述命令
sudo apt update
sudo apt upgrade
sudo apt install nasm2、缺少pkg-config工具 这里其实和上述问题处理一样
sudo apt install pkg-config
3、缺少ffmplay 如果安装结束发现bin目录下没有ffmplay那就需要先安装再重新执行第二部分的内容
sudo apt install libsdl2-dev