笔谈FFmpeg(一)

  现在的工作是播放器库的开发,可不是调用iOS系统自带的播放器框架进行一些简单的功能和界面定制,这些没什么含量。涉及iOS开发有3个年头了,现在的工作算是有点含金量了。涉及播放器的开发,FFmpeg的架构和功能是必须清楚的。FFmpeg自带的三个工程:ffplay, ffmpeg, ffprobe。这三个工程的代码量太大,如何切入进去,一窥其中的奥秘为自己所用呢?从核心切入,编码和解码。编码和解码的核心API接口就那十几个,通过这些深入然后剖析源代码,目标就明确了。

  就我个人而言,首先要了解FFmpeg整个的运行机制,哪一部分工作需要调用FFmpeg的哪一块,这个必须清楚。播放器库的开发,解码播放这就是核心,我就需要从FFmpeg的解码流程入手了。FFmpeg源代码结构图 - 解码 这篇文章太好了,看得我两眼放光,精华。这篇文章读透了,完全可以把控FFmpeg的使用。我接下来的学习任务,那就是认真研读和敲代码研习,光看是不顶用的,需要动手写。

  FFmpeg源代码结构图 - 解码 中包含的信息太多了,对于像我这种在音视频领域中的小白来说,首先要看FFmpeg源代码结构图 - 解码中提到的 简单的基于FFMPEG+SDL的视频播放器 ver2 (采用SDL2.0) 入手。心急吃不了热豆腐,心急就不能静下心来搞懂深层次的问题。我给自己半年的时间,把播放器这套东西搞熟练。

  

时间: 2024-10-23 10:31:24

笔谈FFmpeg(一)的相关文章

笔谈FFmpeg(二)

经过前面的学习对FFmpeg的基本流程已经很熟悉了,现在到了掌握其中细节的时候了,用FFmpeg做播放器解码操作中,涉及到了一些结构体,这些结构之间到底有什么关系,它们是怎样协同工作的呢.文章 FFMPEG中最关键的结构体之间的关系 对这些结构间的关系进行了分析,详细内容如下: FFMPEG中结构体很多.最关键的结构体可以分成以下几类: a)        解协议(http,rtsp,rtmp,mms) AVIOContext,URLProtocol,URLContext主要存储视音频使用的协议

C#中使用ffmpeg合并视频

首先将最新的ffmpeg.exe放到debug路径下,下载地址 http://www.ffmpeg.org/download.html 然后调用此方法 public void CombineMp4WithoutTxt(string StrMP4A, string StrMP4B, string StrOutMp4Path) { Process p = new Process();//建立外部调用线程 p.StartInfo.FileName = System.Windows.Forms.Appl

ffmpeg 3.2.4 + libx264 windows 编译总结

___________________________编译环境__________________________________ NDK 环境:android-ndk-r13b MinGW环境:Basic Setup下Mark了所有的项目,FFmpeg需要使用msys环境进行编译 ffmpeg :3.2.4 下载地址 libx264:官网最新 _____________________________________________________________________ ______

最简单的基于FFmpeg的AVDevice例子(读取摄像头)【转】

转自:http://blog.csdn.net/leixiaohua1020/article/details/39702113 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] libavdevice使用 注意事项 代码 结果 下载 =====================================================最简单的基于FFmpeg的AVDevice例子文章列表: 最简单的基于FFmpeg的AVDevice例子(读取摄像头) 最简单的基于FFm

ffmpeg+x264推送high422 10bit码流

一.目的 推送一条rtmp流,视频码流采用h264 high422 10bit编码 二.环境 1.linux系统:Red Hat Enterprise Linux Server release 5.8 2.ffmpeg:3.1.4 3.x264:git下来的最新代码(2016-10-21) 三.编译x264+ffmpeg 1.编译x264 ./configure --enable_static --bit-depth=10 make make install 默认安装库和头文件到/usr/loc

nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器

参照网址: [1]http://blog.csdn.net/redstarofsleep/article/details/45092147 [2]HLS介绍:http://www.cnblogs.com/haibindev/archive/2013/01/30/2880764.html 上面这两个流的地址分别是: 第一个就是推送的地址: RTMP推流地址: rtmp://serverIp:1935/myapp/test1 第二个是HTTP地址: HLS推流地址: http://serverIp:

FFmpeg在Linux下安装编译过程

转载请把头部出处链接和尾部二维码一起转载,本文出自:http://blog.csdn.net/hejjunlin/article/details/52402759 今天介绍下FFmpeg在Linux下安装编译过程,用的是CentOS, 总体过程比较顺利,就是在ffmpeg等的时间稍长点.没什么技术难点.仅当记录. 关于FFmpeg FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件).它提供了录制.转换以及流化音视频的完整解决方案.它包

ffmpeg命令行

ubuntu下简单安装ffmpeg sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-nextsudo apt-get update sudo apt-get install ffmpeg 1.................................ffmpeg从视频中生成gif图片: ffmpeg -i capx.mp4 -t 10 -s 320x240 -pix_fmt rgb24 jidu1.gif 2.............

(转载)[FFmpeg]使用ffmpeg从各种视频文件中直接截取视频图片

你曾想过从一个视频文件中提取图片吗?在Linux下就可以,在这个教程中我将使用ffmpeg来从视频中获取图片. 什么是ffmpeg?What is ffmpeg? ffmpeg是一个非常有用的命令行程序,它可以用来转码媒体文件.它是领先的多媒体框架FFmpeg的一部分,其有很多功能,比如解码.编码.转码.混流.分离.转化为流.过滤以及播放几乎所有的由人和机器创建的媒体文件. 在这个框架中包含有各种工具,每一个用于完成特定的功能.例如,ffserver能够将多媒体文件转化为用于实时广播的流,ffp