1. 初识FFmpeg

白话:
        工作 以来,从事的是Android方面的上层应用开发,主要关于智能电视中媒体播放上层应用的开发。随着工作的深入,慢慢认识到上层应用开发只是媒体播放中很表层的部分。在工作期间也听说过底层的媒体播放相关的对接有用GStreamer实现的,或者FFmpeg实现。最近空余时间较多,因此想潜心探索一下媒体播放底层的实现方式和原理。看到网上很多开源项目使用的是FFmpeg,并且现在网络直播比较热门且使用FFmpeg作为媒体处理的核心单元,因此将FFmpeg作为探索的对象。

1.1 开源的FFmpeg

1.1.1 FFMPEG作为开源项目:

1.1.2 FFmpeg历史
    FFmpeg的名字源于mpeg视频标准组织,而"FF"表示"fast forward",我自己猜想,可能是FFmpeg的创始人希望此项目快速发展和迭代吧。此项目的创始人是Fabrice Bella (法布里斯·贝拉)。他可是计算机大牛,不仅仅是FFmpeg的项目的创始人,而且是QEMU、Tiny C Compiler等项目的创始人。2000年,FFmpeg创建。

1.1.3 FFmpeg能干什么
  • 跨平台(Linux、Windows、MacOS)
  • decode, encode, transcode, mux, demux, stream, filter and play pretty much anything
  • 为开发人员应用开发提供以下库:
    • libavcodec:通用音频、视频、字幕编解码框架,包括许多编码器和解码器和比特流过滤器。
    • libavutil:工具库,帮助开发可移植的多媒体程序,包含可移植的字符串处理函数、随机数生成器、数据结构、数学运算函数、密码学和多媒体相关的函数。
    • libswscale:提供高度优化的图片比例缩放和颜色空间、像素格式转换功能。
    • libswresample:提供高度优化的音频重采样、重新矩阵运算和采样格式转换功能。
    • libavformat:一个对音频流、视频流、字幕流复用和解复用(muxing and demuxing)的通用框架,其包含许多媒体封装格式的复用器和解复用器。
    • libavdevice:从一些通用的多媒体输入输出设备中获取媒体流或者将媒体流渲染到这些设备上,其支持许多通用的多媒体输入输出设备,包括:Video4Linux2、VfW、DShow、ALSA。
    • libavfilter:通用音视频过滤框架,包含许多filters、sources、sinks。
  • 提供的主要工具:
    • ffmpeg:用于操作、转换、播放多媒体内容的命令行工具库。
    • ffplay:简约的多媒体播放器。
    • ffprobe:分析工具,用于检测多媒体内容。
    • ffserver:用于直播的多媒体播放服务器。

1.1.4 怎么获取FFmpeg源码
  • 目录:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值