
FFMPEG
文章平均质量分 77
BIGBurning
专注于多媒体视频会议,移动互联网,流媒体技术的开发。PJSIP,WebRtc等。
展开
-
利用ffmpeg实现最简单的视频播放功能
还是直接上代码:原创 2014-11-12 14:53:47 · 3679 阅读 · 1 评论 -
ffmpeg转码之TS转PS
写了一个ts转ps的demo。ts数据从文件中读取。ffmpeg怎么从从内存中获取看这篇博文http://blog.youkuaiyun.com/rootusers/article/details/42551935然后将ts流转换为ps流,存储在内存中。下面是代码:extern "C"{#include "libavformat/avformat.h"}FILE *file = NUL原创 2015-01-13 13:45:09 · 9600 阅读 · 0 评论 -
ffmpeg源代码分析之avformat_open_input
/*int avformat_open_input(AVFormatContext **ps, const char *filename, AVInputFormat *fmt, AVDictionary **options){ AVFormatContext *s = *ps; int ret = 0; AVDict原创 2014-10-16 10:54:56 · 17829 阅读 · 0 评论 -
FFMPEG实现的转码程序
本例子是由FFEMPG的doc/example例子transcode.c修改而来,可以根据需求任意转换音视频的编码。原来的例子的作用更类似于remux,并没有实现转码的功能,只是实现了格式转换,比如ts转avi等。并不能实现音视频编码格式的转换,比如将h264转为mpeg2。FFMPEG转码的实现有多种方式:一种方式是:流解复用->视频+音频流->解码->YUV/PCM原创 2015-02-04 17:06:34 · 7528 阅读 · 10 评论 -
H264包解析
在H.264/AVC标准中,整个系统框架被分为了两个层面:视频编码层面(VCL)和网络抽象层面(NAL)。VCL负责表示视频数据的内容,NAL则负责格式化数据并提供头信息,以保证数据适合各种信道和存储介质上的传输。在VCL数据传输或存储之前,这些编码的VCL数据,先被映射或封装进NAL单元中。NAL单元是NAL的基本语法结构,它包含一个字节的头信息和一系列来自VCL的称为原始字节序列载原创 2015-02-06 13:21:03 · 6308 阅读 · 1 评论 -
FFMPEG实现H264的解码(从源代码角度)
农历2014年底了,将前段时间工作中研究的FFMPEG解码H264流程在此做一下整理,也算作年终技术总结了!H264解码原理:H264分为NAL(网络抽象层)和VCL(视频编码层)解码器的总框架:解码器的流程为:将NAL数据位流输入到H264的解码器中,熵解码模块解码后输出量化系数X;系数经过反量化和反变换得到残差数据R;解码器使用从码流中解码的头信息生成预测块Pr原创 2015-02-06 10:16:26 · 8288 阅读 · 1 评论 -
MpegTS流解复用程序实现(解复用得到PES和ES)
MpegTS基础看这几篇博文:MpegTS基础MpegTS之TS,PES,ES结构分析TS流复用和解复用是一个相逆的过程。TS解复用得到的是音视频的PES裸流。一般来讲,每个TS包的长度是188个字节,也有一种204个字节的,就是在每个包后面加上16个字节的RS冗余校验信息。在这里分析188个字节的情况,其余的都类似了。从文件中循环读取188个字节的包,然后对包进行原创 2015-02-05 15:07:01 · 6710 阅读 · 2 评论 -
FFMPEG用法整理
1.修改分辨率率将输入为640*480的修改为320*249ffmpeg -i input -vf scale=iw/2:-2 outputiw:输入帧宽,此处为640,640/2=320。-1告诉scale filter保持纵横比,所以scale filter计算出值240.2.改变音视频播放速度1>视频2倍播放速度,音频两倍播放速度。ffmpeg -i in原创 2015-02-04 14:31:20 · 26258 阅读 · 5 评论 -
ffmpeg的IO操作
网上类似介绍ffmpeg的文章其实挺多。但是让人看了之后还是一头雾水,并且一些结构已经没有了比如ByteIOContext已经改名为AVIOContext,所以决定根据自己的学习经历重新来介绍下IO。所谓IO就是数据的存取,主要的途径也就是文件或者网络。数据IO是基于文件格式的,与具体的编码标准无关。ffmpeg对各种协议实现了封装,使用同样的接口,完成对不同数据的读取。比较屌原创 2015-01-16 16:01:31 · 17902 阅读 · 0 评论 -
Ffmpeg源代码解析之av_read_frame
av_read_frame从字面意思上来看,就是从内存中读取一帧,但是具体的实现如何?本文是在参考别人的代码的基础上,结合最新的源代码,进行分析研究!如果有不正确的地方,欢迎指正。原创 2015-01-19 10:45:24 · 23949 阅读 · 1 评论 -
ffmpeg源码分析之avformat_alloc_context
本着一步一个脚印的原则,分析一下怎么给AVFormat原创 2014-10-31 16:19:42 · 8902 阅读 · 0 评论 -
【整理】FFMPEG相关开源项目
1.FFmpeg build for android random architectures with example jnihttps://github.com/appunite/AndroidFFmpeg2.ijkplayer - Android/iOS 基于FFMPEG库的播放器http://git.oschina.net/bbcallen/ijkplayergit下载原创 2015-02-02 19:11:07 · 8561 阅读 · 0 评论 -
利用ffmpeg截取视频图像并保存为ppm和jpg图片格式
直接贴出代码:原创 2014-11-12 09:25:39 · 29994 阅读 · 1 评论 -
ffmpeg源码分析之av_register_all()
1.muxer/demuxer使用的结构是AVOutp原创 2014-10-30 16:42:14 · 5582 阅读 · 0 评论 -
ffmpeg零基础
ffmpeg是很强大的多媒体编解码框架,当今绝大部分的其代码晦涩难懂原创 2014-10-15 15:09:53 · 6743 阅读 · 1 评论 -
ffmpeg播放音频
首先:音频的解码和视频的解码流程是一样的。原创 2014-11-18 09:28:15 · 3568 阅读 · 0 评论 -
ffmpeg视频同步到音频操作
音频流和视频流中都有关于视频播放速度的信息。原创 2014-11-18 17:40:43 · 6754 阅读 · 0 评论 -
视频编解码理论基础1
一:1. 为什么要进行视频压缩?未经压缩的数字视频的数据量巨大存储困难一张DVD只能存储几秒钟的未压缩数字视频。传输困难1兆的带宽传输一秒的数字电视视频需要大约4分钟。原创 2014-10-17 09:29:51 · 1440 阅读 · 0 评论 -
使用ffmpeg获取视频总时长
以前一直以为知道pFormatContext后原创 2014-11-22 17:25:23 · 23556 阅读 · 3 评论 -
ffmpeg 如何探测网络流格式/如何从内存中获取数据
一般ffmpeg都是直接从文件中读取或者从网络流中读取,比如rtp://xx.xx.xx.xx:xxxx。事实上也支持从内存中获取。函数avio_alloc_context()实现该功能。AVIOContext *avio_alloc_context( unsigned char *buffer, int buffer原创 2015-01-09 10:39:43 · 18144 阅读 · 1 评论 -
FFMPEG-AVFilter研究
FFMPEG中的libswscale是做像素转换的,但是对于一些复杂的操作,比如添加水印等,这个库就不行了,这时候就要说一下另外一个AVFilter。AVFilter完全可以替代libswscale的所有功能,也许有一天,ffmpeg也会这样去做。AVFilter虽然学起来有点复杂,但是为了学好FFMPEG,为了涨工资,我忍了。(*^__^*) 嘻嘻……概念:做个directsho原创 2015-01-30 11:57:35 · 6732 阅读 · 0 评论 -
ffmpeg+ffserver多媒体服务器开发入门
公司需要为Html5客户端配置多媒体服务器。主要是作为媒体server,,音频是实时来自聊天室,中间需要经过一次转码,Opus->mp3,实时转码。研究了两周,将其中一些心得记录分享下。1.循环播放mp3文件。ffserver提供对外的服务请求的处理,ffmpeg作为转码的工具,即将文件或者流中的数据流转发或者转码到ffserver的磁盘文件/tmp/feed1.ffm中。ffm是ffmpeg中保原创 2015-11-13 20:17:06 · 4559 阅读 · 4 评论