FFmpeg
文章平均质量分 81
和FFmpeg开发和使用有关的文章的汇总
雷霄骅
这个作者很懒,什么都没留下…
展开
-
ffmpeg处理RTMP流媒体的命令大全
最近浏览国外网站时候发现,翻译不准确的敬请谅解。1、将文件当做直播送至liveffmpeg -re -i localFile.mp4 -c copy -f flv rtmp://server/live/streamName2、将直播媒体保存至本地文件ffmpeg -i rtmp://server/live/streamName -c copy dump.flv3、将其中一个转载 2013-09-25 21:23:55 · 72098 阅读 · 24 评论 -
ffmpeg中的sws_scale算法性能测试
经常用到ffmpeg中的sws_scale来进行图像缩放和格式转换,该函数可以使用各种不同算法来对图像进行处理。以前一直很懒,懒得测试和甄别应该使用哪种算法,最近的工作时间,很多时候需要等待别人。忙里偷闲,对ffmpeg的这一组函数进行了一下封装,顺便测试了一下各种算法。简单说一下测试环境,我使用的是Dell的品牌机,i5的CPU。ffmpeg是2010年8月左右的当时最新版本编译而成,我使用转载 2013-09-25 21:18:41 · 31508 阅读 · 5 评论 -
FFplay源代码分析:整体流程图
FFplay源代码的流程图如图所示,网上的,不记得从哪弄的了,但是流程很清晰。看完FFplay源代码之后再看这个图感觉整个代码结构一目了然。转载 2013-09-24 16:22:40 · 56518 阅读 · 25 评论 -
ffmpeg函数介绍
本文对在使用ffmpeg进行音视频编解码时使用到的一些函数做一个简单介绍,我当前使用的ffmpeg版本为:0.8.5,因为本人发现在不同的版本中,有些函数名称会有点小改动,所以在此有必要说明下ffmpeg的版本号。ffmpeg本人也是刚接触,本文将采用累加的方法逐个介绍我使用到的函数,如有不妥之处,还望谅解! 头文件引入方法:extern "C" {#include转载 2013-09-24 16:01:44 · 52085 阅读 · 25 评论 -
FFMPEG源码分析:avformat_open_input()(媒体打开函数)
avformat_open_input[cpp] view plaincopy//参数ps包含一切媒体相关的上下文结构,有它就有了一切,本函数如果打开媒体成功, //会返回一个AVFormatContext的实例. //参数filename是媒体文件名或URL. //参数fmt是要打开的媒体格式的操作结构,因为是读,所以是inp转载 2013-09-22 02:11:02 · 26791 阅读 · 2 评论 -
使用FFmpeg类库实现YUV视频序列编码为视频
搞视频处理的朋友肯定比较熟悉YUV视频序列,很多测试库提供的视频数据都是YUV视频序列,我们这里就用用YUV视频序列来做视频。关于YUV视频序列,我就不多讲了,可以看书学习,通常的视频序列都是YUV420格式的。步骤也就那几步,添加视频流,打开编码器,开辟相应的内存空间,然后就可以打开YUV序列逐帧写入数据了,so easy!记得最后要做好文件的关闭和内存的释放,因为FFmpeg是c风格的转载 2013-09-22 01:36:13 · 28512 阅读 · 21 评论 -
ffmpeg源码分析:transcode_init()函数
transcode_init()函数是在转换前做准备工作的.此处看一下它的真面目,不废话,看注释吧:[cpp] view plaincopy//为转换过程做准备 static int transcode_init(OutputFile *output_files, int nb_output_files,转载 2013-09-20 17:36:06 · 8481 阅读 · 1 评论 -
ffmpeg源码分析:transcode()函数
还是先看一下主函数吧:(省略了很多无关大雅的代码)[cpp] view plaincopyint main(int argc, char **argv) { OptionsContext o = { 0 }; int64_t ti; //与命令行分析有关的结构的初始化,下面不再罗嗦转载 2013-09-20 17:34:05 · 9486 阅读 · 2 评论 -
使用FFMPEG类库分离出多媒体文件中的H.264码流
在使用FFMPEG的类库进行编程的过程中,可以直接输出解复用之后的的视频数据码流。只需要在每次调用av_read_frame()之后将得到的视频的AVPacket存为本地文件即可。经试验,在分离MPEG2码流的时候,直接存储AVPacket即可。在分离H.264码流的时候,直接存储AVPacket后的文件可能是不能播放的。如果视音频复用格式是TS(MPEG2 Transpo原创 2013-09-18 11:15:37 · 41896 阅读 · 46 评论 -
使用FFMPEG类库分离出多媒体文件中的音频码流
在使用FFMPEG的类库进行编程的过程中,可以直接输出解复用之后的的音频数据码流。只需要在每次调用av_read_frame()之后将得到的视频的AVPacket存为本地文件即可。经试验,在分离MP3码流的时候,直接存储AVPacket即可。在分离AAC码流的时候,直接存储AVPacket后的文件可能是不能播放的。如果视音频复用格式是TS(MPEG2 Transport S原创 2013-09-18 11:13:11 · 11357 阅读 · 6 评论 -
各种视频编码器的命令行格式
各种编码器命令行工具的简单使用方式第一行是编码,第二行是解码注意: 输入为YUV420P序列分辨率:1920x1080P帧率:25HEVC://编码器自动输出重建文件TappEncoder -c encoder_lowdelay_P_main.cfg -i src01_1920x1080.yuv -wdt 1920 -hgt 1080 -b src01_1920x1原创 2013-09-15 12:31:56 · 20065 阅读 · 0 评论 -
FFMPEG中最关键的结构体之间的关系
FFMPEG中结构体很多。最关键的结构体可以分成以下几类:a) 解协议AVIOContext,URLProtocol,URLContext主要存储视音频使用的协议的类型以及状态。URLProtocol存储输入视音频使用的封装格式。每种协议都对应一个URLProtocol结构。(注意:FFMPEG中文件也被当做一种协议“file”)b) 解封装AVFo原创 2013-09-14 20:41:53 · 81750 阅读 · 81 评论 -
最简单的基于FFMPEG+SDL的音频播放器
FFMPEG工程浩大,可以参考的书籍又不是很多,因此很多刚学习FFMPEG的人常常感觉到无从下手。在此我把自己做项目过程中实现的一个非常简单的音频播放器(大约100行代码)源代码传上来,以作备忘,同时方便新手学习FFMPEG。该播放器虽然简单,但是几乎包含了使用FFMPEG播放一个音频所有必备的API,并且使用SDL输出解码出来的音频。并且支持流媒体等多种音频输入。程序使用了新的F原创 2013-08-29 17:11:09 · 86110 阅读 · 138 评论 -
图解FFMPEG打开媒体的函数avformat_open_input
FFMPEG打开媒体的的过程开始于avformat_open_input,因此该函数的重要性不可忽视。在该函数中,FFMPEG完成了:输入输出结构体AVIOContext的初始化;输入数据的协议(例如RTMP,或者file)的识别(通过一套评分机制):1判断文件名的后缀 2读取文件头的数据进行比对;使用获得最高分的文件协议对应的URLProtocol,通过函数指针的方式,与FF原创 2013-03-11 23:44:42 · 84125 阅读 · 28 评论 -
100行代码实现最简单的基于FFMPEG+SDL的视频播放器(SDL1.x)
FFMPEG工程浩大,可以参考的书籍又不是很多,因此很多刚学习FFMPEG的人常常感觉到无从下手。我刚接触FFMPEG的时候也感觉不知从何学起。因此我把自己做项目过程中实现的一个非常简单的视频播放器(大约100行代码)源代码传上来,以作备忘,同时方便新手学习FFMPEG。该播放器虽然简单,但是几乎包含了使用FFMPEG播放一个视频所有必备的API,并且使用SDL显示解码出来的视频。并且原创 2013-03-08 23:57:08 · 235896 阅读 · 284 评论