♣FFmpeg是什么?

FFmpeg组成

下载工具

♣安装FFmpeg

♣应用到j2ee项目


前言:学习视频编码,一定要知道雷霄骅(leixiaohua1020)的专栏 ,伟大的程序员,26岁去世。雷霄骅---巨星陨落。此文多为摘录自ffmpeg的文档。

官网:https://www.ffmpeg.org/

github地址:https://github.com/FFmpeg/FFmpeg

本文ffmpeg软件包地址:http://download.csdn.net/detail/sinat_31719925/9864080

1.FFmpeg是什么?

  引用百度百科,FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。
  FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括Windows、Mac OS X等。这个项目最早由Fabrice Bellard发起,2004年至2015年间由Michael Niedermayer主要负责维护。许多FFmpeg的开发人员都来自MPlayer项目,而且当前FFmpeg也是放在MPlayer项目组的服务器上。项目的名称来自MPEG视频编码标准,前面的"FF"代表"Fast Forward"。
2.FFmpeg组成

构成FFmpeg主要有三个部分,

 2.1第一部分是四个作用不同的工具软件,分别是:ffmpeg.exe,ffplay.exe,ffserver.exe和ffprobe.exe。

  • ffmpeg.exe:音视频转码、转换器
  • ffplay.exe:简单的音视频播放器
  • ffserver.exe:流媒体服务器
  • ffprobe.exe:简单的多媒体码流分析器

 2.2第二部分是可以供开发者使用的SDK,为各个不同平台编译完成的库。如果说上面的四个工具软件都是完整成品形式的玩具,那么这些库就相当于乐高积木一样,我们可以根据自己的需求使用这些库开发自己的应用程序。这些库有:

  • libavcodec:包含音视频编码器和解码器
  • libavutil:包含多媒体应用常用的简化编程的工具,如随机数生成器、数据结构、数学函数等功能
  • libavformat:包含多种多媒体容器格式的封装、解封装工具
  • libavfilter:包含多媒体处理常用的滤镜功能
  • libavdevice:用于音视频数据采集和渲染等功能的设备相关
  • libswscale:用于图像缩放和色彩空间和像素格式转换功能
  • libswresample:用于音频重采样和格式转换等功能

 2.3第三部分是整个工程的源代码,无论是编译出来的可执行程序还是SDK,都是由这些源代码编译出来的。FFmpeg的源代码由C语言实现,主要在Linux平台上进行开发。FFmpeg不是一个孤立的工程,它还存在多个依赖的第三方工程来增强它自身的功能。在当前这一系列的博文/视频中,我们暂时不会涉及太多源代码相关的内容,主要以FFmpeg的工具和SDK的调用为主。到下一系列我们将专门研究如何编译源代码并根据源代码来进行二次开发。

3.下载工具

在官网上我们可以找到"Download"页面,该页上可以下载FFmpeg的工具、库和源代码等。在选择"Windows Packages"下的Windows Builds后,会跳转到Windows版本的下载页面:

在下载页面上,我们可以看到,对于32位和64位版本,分别提供了三种不同的模式:static、shared和dev

  • static: 该版本提供了静态版本的FFmpeg工具,将依赖的库生成在了最终的可执行文件中;作为工具而言此版本就可以满足我们的需求;
  • share: 该版本的工具包括可执行文件和dll,程序运行过程必须依赖于提供的dll文件;
  • dev: 提供了库的头文件和dll的引导库;

4.安装FFmpeg

 4.1 这里下载的是static版本,将其下载解压到E:\javaEdit\ffmpeg目录下:

4.2配置环境变量:E:\javaEdit\ffmpeg\bin;

4.3 dos窗口输入 ffmpeg -version  命令,如有信息则说明成功:

5.应用到j2ee项目:

 最简单的视频网站(JavaEE+FFmpeg)


【Linux编译安装ffmpeg】

安装过程: 下载安装源,配置,编译,安装,设置环境变量。

# wget http://www.ffmpeg.org/releases/ffmpeg-3.1.tar.gz
# tar -zxvf ffmpeg-3.1.tar.gz
# cd ffmpeg-3.1
# ./configure --prefix=/usr/local/ffmpeg
# make && make install 等待安装完成... # vi /etc/profile
在最后PATH添加环境变量:
PATH=$PATH:/usr/local/ffmpeg/bin
export PATH
保存退出 # source /ect/profile 设置生效
# ffmpeg -version 查看版本

 

注意

若安装过程中出现以下错误:

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.

需要安装yasm

# wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
# tar -zxvf yasm-1.3..tar.gz
# cd yasm-1.3.
# ./configure
# make && make install

结束!

视频处理工具FFmpeg的安装(windows/Linux)的更多相关文章

  1. [Tools] 多媒体视频处理工具FFmpeg

    FFMpeg FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证.它提供了录制.转换以及流化音视频的完整解决方案.它包含了非常先进的音频/ ...

  2. 「小程序JAVA实战」小程序视频处理工具ffmpeg(47)

    转自:https://idig8.com/2018/09/16/xiaochengxujavashizhanxiaochengxushipinchuligongjuffmpeg46/ 前面已经把视频成 ...

  3. 笔记本在安装Windows+Linux双系统后,进入Windows时花屏的解决办法

    问题:在笔记本安装双系统(Windows7+Ubuntu14.04)[先安装Windows,后安装Ubuntu]后,进入Windows时出现了花屏. 问题原因:笔记本只有集显,在系统启动时会先加载Ub ...

  4. Linux下安装视频转换工具ffmpeg

    ffmpeg下载地址:http://ffmpeg.org/releases/ 1.首先需要安装解码器集合(包含安装ffmpeg用到的所有解码器)下载地址: 链接:https://pan.baidu.c ...

  5. elasticsearch 安装 windows linux macOS

    导读 在上一章节我们介绍Elasticsearch基本概念,今天我们继续进行本章内容,Elasticsearch在各种环境下安装,下面将逐一讲解在各种操作系统或不同安装在不同环境中注意事项. 安装 E ...

  6. Git 安装 windows && linux

    一.安装: windows下安装Git: 1.下载Git:https://git-scm.com/download/win 2.安装Git:默认安装,一直回车 Linux下安装Git: yum安装: ...

  7. JDK安装(windows/linux)

    双击安装...安装之后需要进行一些相关的配置工作...下面是我自己总结的安装和配置步骤: (1)非Win7系统 第一步:安装jdk,下载地址:http://www.oracle.com/technet ...

  8. 视频转换工具ffmpeg

    安装ffmpeg ffmpeg官网下载地址点击此处. 如果使用mac也可用homebrew下载安装:brew install ffmpeg 使用ffmpeg 命令如下:ffmpeg -i input. ...

  9. Linux下视频转换工具:转换,切割,连接,

    首先当然是需要安装ffmpeg软件包,可以直接从源中进行安装!但我安装后并不能成功执行后面所需要执行的转换命令,所以我只能重新从源码编译安装ffmpeg: (1)下载ffmpeg源码包,注意版本不能太 ...

随机推荐

  1. Android 之 布局训练

      1.线性布局 LinearLayout <?xml version="1.0" encoding="utf-8"?> <LinearLay ...

  2. 【图算法】Dijkstra算法及变形

    图示: 模版: /* Dijkstra计算单源最短路径,并记录路径 m个点,n条边,每条边上的权值非负,求起点st到终点et的最短路径 input: n m st et 6 10 1 6 1 2 6 ...

  3. 高效使用github

    下面两个资料是我在github上面整理出来的repo,不断进行更新,将遇到的有帮助的文章尽量整理到上面,方便初学者也方便回顾学习.如果恰好你也有一些资料文章,欢迎fork - modify - pul ...

  4. Node.js- sublime搭建node的编译环境

    自动配置: 1.安装package control(见 http://www.cnblogs.com/padding1015/p/7763014.html) 2.sublime编辑器中,按快捷键:ct ...

  5. CSS3 -- 动画库

    http://www.jq22.com/yanshi819 文件结构: html <!DOCTYPE html> <html lang="zh-CN"> & ...

  6. #import同@class之间的区别

    转自:http://blog.sina.com.cn/s/blog_a843a8850101b6a7.html 下面来说一下#import同class之间的区别 在ios中我们经常会在.h和.m中引入 ...

  7. Android studio快捷键设置

    Android Studio格式化代码设置和代码风格设置.代码提示键  http://blog.csdn.net/u010156024/article/details/48207145 Android ...

  8. Elasticsearch学习之深入搜索五 --- phrase matching搜索技术

    1. 近似匹配 什么是近似匹配,两个句子 java is my favourite programming language, and I also think spark is a very goo ...

  9. innodb 锁机制

    InnoDB锁问题 InnoDB与MyISAM的最大不同有两点:一是支持事务(TRANSACTION):二是采用了行级锁.行级锁与表级锁本来就有许多不同之处,另外,事务的引入也带来了一些新问题.下面我 ...

  10. 严版数据结构题集2.13 & 2.14

    1.试写一算法在带头结点的单链表结构上实现线性表操作Locate(L,x) 2.试写一算法在带头结点的单链表结构上实现线性表操作Length(L) #include<stdio.h> #i ...