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

Linux下安装ffmpeg与使用

下面是以Linux为例介绍ffmpeg的安装流程的简单的命令行对视频进行转码操作,是ffmpeg中最最简单的入门内容.首先去官网下载源码包,这里下载的是最新的ffmpeg-3.3.1.tar.

下面是以Linux为例介绍ffmpeg的安装流程的简单的命令行对视频进行转码操作,是ffmpeg中最最简单的入门内容.

  首先去官网下载源码包,这里下载的是最新的ffmpeg-3.3.1.tar.bz2,下载之后上传至Linux准备安装,首先解压安装包:

tar -xjvf ffmpeg-3.3.1.tar.bz2 cd ffmpeg-3.3.1/

  如果现在直接执行configure配置的话,可能会报如下的错误:

错误的意思是 yasm/nasm 包不存在或者很旧,可以使用--disable-yasm禁用这个选项编译,yasm是一款汇编器,并且是完全重写了nasm的汇编环境,接收nasm和gas语法,支持x86和amd64指令集,所以这里安装一下yasm即可,下载地址是:http://yasm.tortall.net/Download.html 进入后下载1.3.0的源码包,执行下面命令安装:

tar -xvzf yasm-1.3.0.tar.gz cd yasm-1.3.0/ ./configure make make install

  编译参数都是默认的,直接安装到系统中即可,安装成功之后继续回到ffmpeg解压后的目录,执行下面命令编译并安装:

./configure --enable-shared --prefix=/monchickey/ffmpeg
make make install

  编译过程有点长,耐心等待完成之后执行 cd /monchickey/ffmpeg/ 进入安装目录,查看一下发现有bin,include,lib,share这4个目录,其中bin是ffmpeg主程序二进制目录,include是C/C++头文件目录,lib是编译好的库文件目录,share是文档目录,然后进入bin目录,执行 ./ffmpeg -version 查看当前版本的详细信息,默认情况下一般会报libavdevice.so.57: cannot open shared object file: No such file or directory,原因是lib目录未加载到链接到系统库中,系统ld目录列表在/etc/ld.so.conf中,打开文件会发现,里面引用了/etc/ld.so.conf.d/下面所有的.conf文件,比如mariadb-x86_64.conf我们只需要创建一个文件并写入lib路径即可,执行命令: vim /etc/ld.so.conf.d/ffmpeg.conf 然后添加一行内容: /monchickey/ffmpeg/lib 之后保存并退出,然后执行 ldconfig 使配置生效,现在再次执行 ./ffmpeg -version 显示就正常了

  以上转账自https://www.cnblogs.com/freeweb/p/6897907.html#commentform-----------------------------------------------------

 

当我们在 Linux下执行一个命令时,报   -bash:  XXXX: command not found,这和Windows是相同的道理,都是环境变量惹的祸,

就是说你的 命令的 执行文件不在 /usr/bin 或者 /etc/init.d 中,他就找不到 执行该命令的 文件来执行.

思路是将 该应用的 bin 目录 放入到  profile 文件中就OK了


1、find / -name profile  #找到该文件(这个文件相当于 你在Windows 中加入环境变量那块),一般该文件在 /etc/profile 这里

2、vim profile                 #编辑该文件

3、export PATH="$PATH:/phpstudy/mysql/bin:/monchickey/ffmpeg/bin"     

#在该文件中加入 command not found 的应用 bin 目录,这里我是将 mysql 的 bin 放到这里,因为 我是因为 mysqld / mysqldump / mysqladmin 命令用不了

4、source /etc/profile  // 更新配置(不用重启系统)
---------------------
作者:qq_blog
来源:CSDN
原文:https://blog.csdn.net/zq199692288/article/details/78871046
版权声明:本文为博主原创文章,转载请附上博文链接!

 

---------------------------------

上面我们编译完了FFMPEG之后可以去运行以下bin目录下生成的可执行文件

~/tmp/ffmpeg/ffmpeg/host/bin$ ./ffmpeg 
./ffmpeg: error while loading shared libraries: libavdevice.so.57: cannot open shared object file: No such file or directory

发现系统提示找不到动态库,可以用

ldd ffmpeg

来查看运行当前可执行文件需要哪些动态库

~/tmp/ffmpeg/ffmpeg/host/bin$ ldd ffmpeg 
    linux-vdso.so.1 => (0x00007fffcfeaf000) libavdevice.so.57 => not found libavfilter.so.6 => not found libavformat.so.57 => not found libavcodec.so.57 => not found libswresample.so.2 => not found libswscale.so.4 => not found libavutil.so.55 => not found libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f41d6d9e000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f41d6b7f000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f41d67b9000) /lib64/ld-linux-x86-64.so.2 (0x00007f41d70c7000)

应该有很多人和我一样,不想编译FFMPEG之后还要动自己系统的环境,这时有一个简单的方法可以解决这个问题。就是在当前终端export一个环境变量。

~/tmp/ffmpeg/ffmpeg/host$ export LD_LIBRARY_PATH=lib/

 

~/tmp/ffmpeg/ffmpeg/host/bin$ export LD_LIBRARY_PATH=../lib/
~/tmp/ffmpeg/ffmpeg/host/bin$ ldd ffmpeg 
    linux-vdso.so.1 => (0x00007fff25150000) libavdevice.so.57 => ../lib/libavdevice.so.57 (0x00007f7348cc8000) libavfilter.so.6 => ../lib/libavfilter.so.6 (0x00007f73488e8000) libavformat.so.57 => ../lib/libavformat.so.57 (0x00007f73484cc000) libavcodec.so.57 => ../lib/libavcodec.so.57 (0x00007f7347034000) libswresample.so.2 => ../lib/libswresample.so.2 (0x00007f7346e17000) libswscale.so.4 => ../lib/libswscale.so.4 (0x00007f7346b8f000) libavutil.so.55 => ../lib/libavutil.so.55 (0x00007f7346917000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f73465f1000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f73463d3000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f734600d000) libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f7345dee000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7345be9000) /lib64/ld-linux-x86-64.so.2 (0x00007f7348edb000) libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f73459e5000) libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f73457de000)

然后再去运行上面的可执行文件就可以了

~/tmp/ffmpeg/ffmpeg/host/bin$ ./ffmpeg 
ffmpeg version n3.2.2-8-g64bb329 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
  configuration: --prefix=host --enable-shared --disable-static --disable-doc
  libavutil      55. 34.101 / 55. 34.101
  libavcodec     57. 64.101 / 57. 64.101
  libavformat    57. 56.101 / 57. 56.101
  libavdevice    57.  1.100 / 57.  1.100
  libavfilter     6. 65.100 /  6. 65.100
  libswscale      4.  2.100 /  4.  2.100
  libswresample   2.  3.100 /  2.  3.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full help or, even better, run 'man ffmpeg'

 *******  转载自https://www.cnblogs.com/CoderTian/p/6655568.html ***********


推荐阅读
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 本文介绍了如何清除Eclipse中SVN用户的设置。首先需要查看使用的SVN接口,然后根据接口类型找到相应的目录并删除相关文件。最后使用SVN更新或提交来应用更改。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
author-avatar
我心永恒2602922374_902
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有