热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ffmpeg安装及encode库的安装说明

一、安装ffmpegA.去ffmpeg官网(https:ffmpeg.org)下载linux的官方源码包B.解压tar-jxvfffmpeg-3.1.4.tar

一、安装ffmpeg

A. 去ffmpeg官网(https://ffmpeg.org/)下载linux的官方源码包
B. 解压 tar -jxvf ffmpeg-3.1.4.tar.bz2
C. 进入解压目录 cd ffmpeg-3.1.4/
D. 执行 ./configure –enable-shared –prefix=/usr/local/ffmpeg

如果提示出错

yasm/nasm not found or too old. Use –disable-yasm for a crippled build.

If you think configure made a mistake, make sure you are using the latest
version from Git. If the latest version fails, report the problem to the
ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file “config.log” produced by configure as this will help
solve the problem.

E.按照提示需要安装yasm.
1).wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz 下载源码包
2).tar zxvf yasm-1.3.0.tar.gz 解压
3).cd yasm-1.3.0 进入目录
4)../configure 配置
5).make && make install 编译安装

安装完成后,继续执行
./configure –enable-shared –prefix=/usr/local/ffmpeg
然后
F. make 这个编译的时间会很长
G. make install 安装

最后 检查安装是否成功
/usr/local/ffmpeg/bin/ffmpeg –version

报错如下
/usr/local/ffmpeg/bin/ffmpeg: error while loading shared libraries: libavdevice.so.56: cannot open shared object file: No such file or directory

提示库文件找不到。
修改文件/etc/ld.so.conf 内容增加/usr/local/ffmpeg/lib/

vim /etc/ld.so.conf

include ld.so.conf.d/*.conf
/usr/local/ffmpeg/lib

保存退出之后 ,执行
ldconfig
使修改生效

执行 /usr/local/ffmpeg/bin/ffmpeg –version

配置环境变量 path
执行 export PATH=/usr/local/ffmpeg/bin/:$PATH
执行 env

则在任何目录都可以执行 ffmpeg –version

测试执行转码:
ffmpeg -i test.avi test.mp4

到这里ffmpeg的安装就完成了,但是有很多的视频编码ffmpeg在现在的情况下是没法完成的,因为他有些编码库好没有装上去,下面就是讲编码库的安装

参考资料:http://blog.csdn.net/5iasp/article/details/50913855

二、安装ffmpeg的encode库

声明:安装ffmpeg或者encode库没有先后顺序,可以先安装ffmpeg的编码库 。ffmpeg编译是需要很长的时间的。这里根据需要我只讲h264 、theora、vp8 这三种编码的安装。如需其他的编码,可以找编码安装即可,方式相同
1、安装h264编码库
1).先下载x264的工程代码,h264 的编码库下载地址(git clone git://git.videolan.org/x264.git),linux系统有些是带git的,如果没有可以先安装一个
执行 yum install git

2)进入x264文件夹,./configure –help看看它的帮助信息,我们这里需要的是x264以.so or .a的形式来支援ffmpeg,所以一般就关注shared和static关键词就可以了。执行./configure –enable-shared –enable-static就行了。
3).完了make && make install就可以了。

你会发现我们在./configure的时候没有指定前缀–prefix=/usr,很明显,libx264.so和libx264.a就会复制到/usr/local/lib下去,记住这里,等下会因为这里要做一些修改。

重新编译ffmpeg(也可以先安装下边的两个包,到时候一起编译,节约时间)
1).进入ffmpeg目录,./configure –enable-gpl –enable-libx264,然后就生成了新的makefile了。
2).执行make clean 完了之后make 完了之后make install。
3).这样ffmpeg就被重新编译了,完了就可以验证一下,使用ffmpeg工具,把某个视频文件中的视频流转码成h264格式

如果你看到类似于“libxxx.so找不到”的错误提示,解决方法
在/etc/ld.so.conf文件中添加一行/usr/local/lib 保存退出之后ldconfig命令使得刚刚的修改生效,完了再运行转码命令试试

参考资料:http://blog.csdn.net/zmlcool/article/details/8141097

2、安装theora编码库
安装theora编码库需要 ogg 的依赖 所以在这之前需要先安装ogg
1)ogg的源码包下载地址:http://www.xiph.org/downloads/
2)tar -zxvf libogg-1.3.2.tar.gz 解压
3)cd libogg-1.3.2/ 进入目录
4)./configure 配置
5)make 编译
6)make install 安装

1) theora下载源码包,下载地址http://theora.org/downloads/
2) 解压 tar xvfj libtheora-1.1.1.tar.bz2
3) 进入文件夹 cd libtheora-1.1.1/
4) ./configure 配置
5) make 编译
6) make install 安装

到此theora 编码库安装完成

重新编译ffmpeg(也可以先安装下边的两个包,到时候一起编译,节约时间)
进入ffmpeg目录,./configure –enable-gpl –enable-libtheora –enable-libx264,然后就生成了新的makefile了。
执行make clean 完了之后make 完了之后make install。

3、安装 vp8 编码库
1)下载源码包:https://github.com/webmproject/libvpx/releases/tag/v1.6.0
2)tar -zxvf libvpx-1.6.0.tar.gz.
3)cd libvpx-1.6.0/
4)./configure
5)make
6)make install

Vp8 安装完成

重新编译ffmpeg(也可以先安装下边的两个包,到时候一起编译,节约时间)
进入ffmpeg目录,
./configure –enable-gpl –enable-libtheora –enable-libx264 –enable-libvpx,然后就生成了新的makefile了。
执行make clean 完了之后make 完了之后make install。

现在ffmpeg能转的编码格式如下表,我们刚刚安装的三个格式都已经在里面了

三、使用方法

这是我使用的三种格式的转码方式

ffmpeg -i test.avi -vcodec libx264 -acodec aac testout.m4v 或者 ffmpeg -i test.avi -vcodec h264 -acodec aac testout.m4v

ffmpeg -i test.avi -vcodec libtheora -acodec vorbis -strict -2 testout.ogv

ffmpeg -i test.avi -vcodec vp8 -acodec vorbis -strict -2 testout.webm

还有分享这篇博客,上面有ffmpeg的更具体的使用方法
http://www.cnblogs.com/wainiwann/p/4128154.html


推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • ffmpeg  spydroid jrtplib
    2019独角兽企业重金招聘Python工程师标准手机上采用Spydroid程序。https:github.comfyhertzspydroid-ipcamera先用libcu ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
author-avatar
王锟2004
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有