Linux ffmpeg的安装编译过程

Linux ffmpeg的安装编译过程



  1、下载ffmpeg。

      在网上搜索一下,或者到官方网站下载

 

  2、解压

     tar命令解压


  3、配置

  ./configure --enable-shared --prefix=/usr/local/ffmpeg

  其中:--enable-shared 是允许其编译产生动态库,在以后的编程中要用到这个几个动态库。--prefix设置的安装目录。

  4、编译并安装

  make
  make install

  5、安装之后在/usr/local/ffmpeg会看到有三个目录

  lib 动态链接库位置
  include 编程要用到头文件
  bin 执行文件所在的目录

  6、为了以后方便编程,我们把lib中的三个链接库libavcodec.so libavformat.so libavutil.so复制到/usr/lib下。把include目录下的ffmpeg目录复制到/usr/include下。

  执行bin目录下的ffplay,可以去播放音频或者视频文件。例如播放1.mp3

  ./ffplay 1.mp3

  另外,bin目录下还有两个文件:ffmpeg和ffserver

  ffmpeg是一个很好的视频和音频的格式转化工具。网上有很多它的说明文档。如果不想生成ffserver,只要在./configure的时候加--disable-ffserver即可。

  7、编程

  如果写了一个test.c文件,要包含ffmpeg的头文件,可以这样写:

  #include

  编译:gcc -o test test.c -lavformat -lavcodec -lavtuil (前提是有第6步的操作)

  如果没有第6部的操作,则编译的时候如下:

  gcc -o test test.c -I/usr/local/ffmpeg/include -L/usr/local/ffmpeg/lib -lavformat -lavcodec -lavtuil

  编译成功之后,执行的时候还是需要动态库的支持,还是要把那三个动态库文件复制到/usr/lib或者/lib中,不然执行的时候会说找不到动态库链接。还有一个方法可以解决这个问题,就是把/usr/local/ffmpeg/lib这个目录加入到/etc/ld.so.config中,然后执行ldconfig,或者重启电脑,这样执行的时候系统就可以从/usr/local/ffmpeg/lib这个目录下去找这三个动态库文件了。

  以上的方式是采用动态库编译ffmpeg的,如果在configure的时候不加上--enable-shared的,则采用静态链接的方式,不会生成那三个动态库。同时生成的ffplay、ffmpeg的执行文件也比较的大,因为他们不需要动态库的支持,就可以执行。但是不利于再次开发,所以我采用动态链接的方式。configure中还有很多的选项,可以通过./configure --help查看,也可以直接查看configure文件。这在配置的时候很重要。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255023.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

opencv 模板匹配(cvMatchTemplate)

opencv 模板匹配(cvMatchTemplate) 模板匹配是通过在输入图像上滑动模板图像块对实际的图像块和输入图像进行匹配,并且可以利用函数cvMinMaxLoc()找到最佳匹配的位置。例如在工业应用中,可以锁定图像中零部件的位置,并根据具体的位置&…

爬虫系统Lucene分词

思路:查询数据库中信息,查询出id和name把那么进行分词存入文件 package com.open1111.index; import java.io.IOException;import java.nio.file.Paths;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet; impor…

[BZOJ1880] [Sdoi2009] Elaxia的路线 (SPFA 拓扑排序)

Description 最近,Elaxia和w**的关系特别好,他们很想整天在一起,但是大学的学习太紧张了,他们 必须合理地安排两个人在一起的时间。Elaxia和w**每天都要奔波于宿舍和实验室之间,他们 希望在节约时间的前提下&#xff0…

ffmpeg的编译大全

ffmpeg的编译大全 最近互联网视频共享的网站很火,公司也想搞类似的网站,初步是用fmsffmpeg形式 fms负责在线录制,播放,ffmpeg则在后台处理上传的资源转换成一定的格式。 为了让ffmpeg支持的格式尽量多,所以特把我的编译…

用OPENCV视觉解数独

用OPENCV视觉解数独 2010-06-29 看到增强视觉网站上介绍老外用视觉解SUDOKU(http://www.cvchina.info/2011/05/29/video-sudoku-solver/),觉得应该不难,于是用OPENCV和训练好的数字分类器,也试着做一个,纯属娱乐 基本思路如下&…

集成ffmpeg/x264:ERROR: libx264 not found的问题

集成ffmpeg/x264:ERROR: libx264 not found的问题--拔剑集成ffmpeg/x264碰到如下问题: ERROR: libx264 not found察看config.log,详细信息如下:check_lib x264.h x264_encoder_encode -lx264check_header x264.hcheck_cppBEGIN/tmp/ffconf.isuazGlg.c1 …

[ActionScript 3.0] AS3.0 下雨及涟漪效果

帧代码: stage.frameRate 80;function init(x1:Number,y1:Number) {var mc:MovieClipnew MovieClip();addChild(mc);mc.x x1;mc.y y1;mc.graphics.lineStyle(0.5,0xbbffff,0.6);mc.graphics.drawEllipse(-1,-0.3,2,0.6);mc.addEventListener(Event.ENTER_FRAME,f…

JS Math.round()方法原理

请先测试代码&#xff1a; 1 <!doctype html>2 <html lang"en">3 4 <head>5 <meta charset"UTF-8" />6 <title>Math.round方法</title>7 <style type"text/css">8 …

一个通用Makefile的编写

我们在 LinuxLinux Linux是一套免费使用和自由传播的操作系统&#xff0c;它主要用于基于Intel系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的&#xff0c;其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。 环境下…

Cache替换算法:LRU与LFU的区别

LFU&#xff08;Least Frequently Used&#xff09;最近最少使用算法。它是基于“如果一个数据在最近一段时间内使用次数很少&#xff0c;那么在将来一段时间内被使用的可能性也很小”的思路。LRU&#xff08;Least Recently Used&#xff09;. 注意LFU和LRU算法的不同之处&…

001-Ansible-参考http://www.ansible.com.cn/docs/playbooks_intro.html#about-playbooks

1. Patterns 在Ansible中,Patterns 是指我们怎样确定由哪一台主机来管理. 意思就是与哪台主机进行交互. ansible <pattern_goes_here> -m <module_name> -a <arguments>ansible webservers -m service -a "namehttpd staterestarted"同时让我们提前…

linux下通用Makefile写法

linux编译多个源文件的程序比较麻烦&#xff0c;这下就需要通用的Makefile了&#xff0c;编译的时候执行一下make命令就OK&#xff0c;下面介绍通用makfile的写法。 假设现在有以下源文件&#xff1a;file1.h file1.c file2.h file2.c mainproc.c&#xff0c;程序的主函数在mai…

客服弹出框

html代码&#xff1a; <head><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><title>QQ在线客服jquery特效</title><link rel"stylesheet" type"text/css" href"common/css/lay…

第三次毕业设计任务书

一. 进度计划 时间 计划进度 3.24-3.30 尝试将kdd数据预处理用代码实现 3.31-4.6 将kdd数据预处理用代码实现以及与aprior算法的结合 二. 课题需求 2.1 数据预处理的功能和主要方法 在现实中,由于数据的来源、组织、存储等的多样性,海量的原始数据中一般都很难避免“脏数据…

电商第一季函数笔记(1)

1、isset (PHP 4, PHP 5, PHP 7) isset — 检测变量是否设置 说明 bool isset ( mixed $var [, mixed $... ] ) 检测变量是否设置&#xff0c;并且不是 NULL。 如果已经使用 unset() 释放了一个变量之后&#xff0c;它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL …

压缩xvid ffmpeg x264 对比

压缩xvid ffmpeg x264 对比 Xvid是基于MPEG4协议的编解码器&#xff0c;x264是基于H.264协议的编码器&#xff0c;ffmpeg集合了各种音频&#xff0c;视频编解码协议&#xff0c;通过设置参数可以完成基于MPEG4,H.264等协议的编解码&#xff0c;现在将其对比结果罗列如下&#…

JMS-activMq与spring进行整合

对JMS做了一个简要介绍之后&#xff0c;接下来就讲一下Spring整合JMS的具体过程。JMS只是一个标准&#xff0c;真正在使用它的时候我们需要有它的具体实现&#xff0c;这里我们就使用Apache的activeMQ来作为它的实现。所使用的依赖利用Maven来进行管理&#xff0c;具体依赖如下…

微信消息

微信消息 转载于:https://www.cnblogs.com/linewman/p/9918298.html

make: 警告:检测到时钟错误。您的创建可能是不完整的。

我在make的时候也出现了同样的问题&#xff0c;不过不是什么大问题&#xff0c;这个不影响编译结果分析原因可能是&#xff1a; 服务器上的文件最后修改时间比当前时钟要晚解决办法&#xff1a; 用touch 命令把源程序的时间戳改一下 find . -type f -exec touch {} \;或者touch…

FileReader/FileWriter复制文件

public class Test{ /*FileReader/FileWriter读写乱码&#xff0c;待处理*/ public static void main(String[] args) throws IOException{ FileReader fileReader null; FileWriter fileWriter null; try{ fileReader new FileReader("c:/123/666.doc"); fileWri…