[原]零基础学习视频解码之后记

嘿嘿,在此之前从来没有用c写个一个简单的demo,最多也是用c写写数据结构练习题什么的,通过这个学习了解了很多以前不了解的东西。

本人比较懒,做什么事情都是只有三分钟热度,但是一直对ffmpeg解码向往而入门不得。《零基础学习视频解码》系列文章严格意义上来说不算是原创,我无非是将按照http://dranger.com/ffmpeg/这个介绍在Ubuntu 14.04上面用Eclipse+CDT插件去实现了一遍,原文中的很多接口在ffmpeg2.3上面变了,有些接口甚至被删除了,这导致大多数情况下原文的例子编译不过,极大降低了大家的学习的热情。在本系列文章中这些都是可以编译通过并且运行成功的,这点是博主亲自测试通过的。

本系列文章不针对大牛,如果你是大神级别基本可以绕过,因为本人理解能力有限,系列文章中的音视频同步这几章都是直接翻译的dranger中的讲解,如有不妥还望指正。后续如果有精力继续研究将其完善和补充。

也有园友可能会发现这里面没有视频流预缓冲啊,没有字幕的处理啊,SDL使用的是1.2的为什么不使用SDL2.0,如何播放网络视频等等。原因只有一个,博主能力不够哇,套用前同事鄙视我的一句话:就是一个字,搓!!!

言归正转,本系列文章不是如何做一个完整的视频播放器,只是帮自己也帮大家来入门,知道如何使用ffmpeg来解码。如果想更加深入了解,可以详细去参考ffplay源码,里面有很多细节的处理,包括字幕的处理。

最后,也祝大家早日成为视频编解码界大神一般的存在!

[原]零基础学习视频解码之后记

时间: 2024-10-23 03:14:23

[原]零基础学习视频解码之后记的相关文章

[原]零基础学习视频解码系列文章

注:本系列文章的开发环境:Ubuntu 14.04+Eclipse4.3.2+CDT+FFmpeg2.3+SDL1.25 [原]零基础学习视频解码之安装ffmpeg [原]零基础学习视频解码之FFMpeg中比较重要的函数以及数据结构 [原]零基础学习视频解码之解码图像 [原]SDL开发教程 [原]零基础学习视频解码之解码声音 [原]零基础学习视频解码之视频线程 [原]零基础学习视频解码之同步视频 [原]零基础学习视频解码之同步音频 [原]零基础学习视频解码之seek [原]零基础学习视频解码之后

[原]零基础学习视频解码之FFMpeg中比较重要的函数以及数据结构

在正式开始解码练习前先了解下关于FFmpeg中比较重要的函数以及数据结构. 1. 数据结构:  (1) AVFormatContext  AVFormatContext是一个贯穿始终的数据结构,很多函数都要用到它作为参数.FFmpeg代码中对这个数据结构的注释是:format I/O context 此结构包含了一个视频流的格式内容.其中存有了AVInputFormat(or AVOutputFormat同一时间AVFormatContext内只能存在其中一个),和AVStream.AVPack

[原]零基础学习视频解码之seek

现在,我们要添加一些功能,当你看不能倒带的电影,是不是很烦? 那么函数av_seek_frame功能看起来是多么赏心悦目. 我们将让左,右箭头来回走在影片中通过一个小的向上和向下箭头很多,其中“三多一少”是10秒,“很多”为60秒.因此,我们需要设置我们的主循环,用来捕获击键.然而,当我们得到一个按键,就不能直接称之为函数av_seek_frame.我们所要做的是在我们的主解码循环中,decode_thread循环做相应的处理. 为了检测按键,我们先来看看,看看我们得到了一个SDL_KEYDOW

[原]零基础学习视频解码之安装ffmpeg

写在文章前面:ffmpeg是一个开源的编解码框架,拥有很强大的功能.但是对于如果使用其来做开发呈现着严重两极分化,大神们讨论着高深的问题,大多数像我这样的小白连门都进不去.最近无意间领会了如何入门,现在写下这个系列文章<零基础学习视频解码>用来帮大家提供入门基础.博主的开发机器是基于Ubuntu 14.04 64位的,所以这个系列的文章都是在Ubuntu下完成的. 一.安装SDL C语言没有图形库,其中SDL比较小巧,并且是开源的,适合入门者学习.另外安装ffmpeg的时候会检测是否安装SDL

[原]零基础学习视频解码之同步视频

来源:http://www.cnblogs.com/tanlon/p/3893540.html?utm_source=tuicool&utm_medium=referral

[原]零基础学习在Android进行SDL开发后记

本着学习交流记录的目的编写了这个系列文章,主要用来记录如何从零开始学习SDL开发的过程,在这个过程中遇到了很多问题,差点就放弃了.首先是SDL的Android移植的时候遇到了比较坑的是SDL移植到Android的JNI文件编写比较坑,刚开始想着如何将SDL编译成动态共享库,在别的地方直接调用该动态共享库,结果发现死活崩溃在SDL_Init()这个函数,最后发现SDL的JNI文件直接使用SDLActivity的函数,并且JNI采用静态注册的方式.直接在别的地方调用该动态库就跪了,博主能力又有限,又

[原]零基础学习在Android进行SDL开发系列文章

[原]零基础学习SDL开发之移植SDL2.0到Android [原]零基础学习SDL开发之在Android使用SDL2.0显示BMP图 [原]零基础学习SDL开发之在Android使用SDL2.0显示BMP叠加图 [原]零基础学习SDL开发之在Android使用SDL2.0渲染PNG图片 [原]零基础学习SDL开发之在Android使用SDL2.0加载字体 [原]零基础学习在Android进行SDL开发后记 [原]零基础学习在Android进行SDL开发系列文章,布布扣,bubuko.com

[原]零基础学习SDL开发之在Android使用SDL2.0显示BMP图

关于如何移植SDL2.0到安卓上面来参考我的上一篇文章:[原]零基础学习SDL开发之移植SDL2.0到Android 在一篇文章我们主要使用SDL2.0来加载一张BMP图来渲染显示. 博主的开发环境:Ubuntu 14.04 64位,Eclipse + CDT + ADT+NDK 博主曾经自己使用NDK编译出了libSDL2.so,然后使用共享库的方式来调用libSDL2中的函数,结果发现SDL\src\core\android\SDL_android.c 这个jni函数写的实在是不够自己另外做

[原]零基础学习SDL开发之在Android使用SDL2.0显示BMP叠加图

关于如何移植在android上使用SDL,可以参考[原]零基础学习SDL开发之移植SDL2.0到Android 和 [原]零基础学习SDL开发之在Android使用SDL2.0显示BMP图 . 在一篇文章我们主要使用SDL2.0来加载一张BMP图来渲染显示,同时叠加一张图作为背景图. 博主的开发环境:Ubuntu 14.04 64位,Eclipse + CDT + ADT+NDK 在前面两篇文章我们知道了如何移植SDL2.0到android上面来,并且可以在Android上面来显示一张图片,这篇