FFmpeg---源码编译
时间:2019-10-25
本文章向大家介绍FFmpeg---源码编译,主要包括FFmpeg---源码编译使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
FFmpeg既是一款音视频编解码工具,同时也是一组音视频编解码开发套件,作为编解码开发套件,它为开发者提供了丰富的音视频的调用接口。
FFMpeg提供了多种媒体格式的封装和解封装,包括多种音视频编码、多种协议的流媒体、多种色彩格式转换、多种采样率转换、多种码率转换等;FFmpeg框架提供了多种丰富的插件模块,包含封装与解封装的插件、编码与解码的插件等。
FFmpeg中的“FF”指的是“Fast Forward”,FFmpeg中的“mpeg”则是“Moving Picture Experts Group(动态图像专家组)”。
1、安装相关工具
打开终端,执行以下命令,安装相关工具:
sudo apt-get install -y autoconf automake build-essential git libass-dev libfreetype6-dev libsdl2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo wget zlib1g-dev sudo apt-get install -y yasm cmake mercurial
2、源码下载
在终端输入以下指令,ffmpeg的源码会克隆在"/home/用户名/"路径下:git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
得到文件夹ffmpeg。
这里补充说明一下ffmpeg中configure的内容:
--prefix=PREFIX install in PREFIX [$prefixdefault] 安装程序到指定目录(默认安装在prefixdefault变量指定的路径),这里可以在configure中看到默认的安装路径为“usr/local/”; “--disable-**** ” 表示该项是默认启用的,可调用该语句关闭/禁用该项; “--enable-**** ” 表示该项是默认是关闭/禁用的,可调用该语句启用该项;
3、编译安装
工作中需要通过ffmpeg实现H.264编码的的,所以需要将libx264启用的,同时我进行了ffmpeg的安装路径指定,所以我的configure的指令如下:
//设置安装路径、启用动态库(静态库默认是启用的)、启用h264编码
进入ffmpeg文件夹:
./configure --prefix=/usr/local/ffmpeg/ --enable-shared --enable-libx264
make
sudo make install
4、添加ffmpeg库的链接
为了后续开发方便,在这里配置一下共享目录问题, 在终端输入下面命令: sudo vim /etc/ld.so.conf 或者 sudo gedit /etc/ld.so.conf 在最后添加一行: /usr/local/ffmpeg/lib 【注意:(vim打开方式时:)输入“:wq”回车,(gedit)保存退出】 sudo ldconfig
到这里ffmpeg的编译安装已完成,可以使用其动态库进行开发了。
补充:
如果想要直接使ffmpeg的静态执行文件时,需要进行以下配置,方便使用:
在/etc/profile文件中将ffmpeg命令添加进PATH中(我这是对所有用户可用,具体可以另行喜好设置) sudo vim /etc/profile 找到export行,在下面一行添加 export PATH=/usr/local/ffmpeg/bin/:$PATH 保存后执行 source /etc/profile
现在就可以在当前bash终端中正常使用ffmpeg了。 重启后就可以正常使用了,建议重启。
@https://blog.csdn.net/wangyjfrecky/article/details/80998303
原文地址:https://www.cnblogs.com/carle-09/p/11736390.html
- [Silverlight动画]转向行为 - 2D向量
- [Silverlight动画]转向行为 - 介绍
- WCF技术剖析之十七:消息(Message)详解(中篇)
- flash游戏引擎整理
- [Silverlight动画]转向行为 - 群落
- [Silverlight动画]转向行为 - 路径跟随
- [Silverlight动画]转向行为 - 漫游行为
- [Silverlight动画]转向行为 - 对象回避
- [mobile开发碎碎念]手机页面上显示PDF文件
- Windows Server 2008 R2 配置AD(Active Directory)域控制器
- ios开发基础知识 - 2
- ios开发基础知识 - 1
- 为UINavigationBar添加自定义背景
- UIScrollView无法响应touches的解决方法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法