DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

2017年8月9日

摘要: FFMPEG中的libswscale是做像素转换的,但是对于一些复杂的操作,比如添加水印等,这个库就不行了,这时候就要说一下另外一个AVFilter。AVFilter完全可以替代libswscale的所有功能,也许有一天,ffmpeg也会这样去做。AVFilter虽然学起来有点复杂,但是为了学好FF 阅读全文
posted @ 2017-08-09 19:01 DoubleLi 阅读(1843) 评论(0) 推荐(0)

摘要: 一般ffmpeg都是直接从文件中读取或者从网络流中读取,比如rtp://xx.xx.xx.xx:xxxx。 事实上也支持从内存中获取。 函数avio_alloc_context()实现该功能。 [html] view plain copy print? AVIOContext *avio_alloc 阅读全文
posted @ 2017-08-09 19:00 DoubleLi 阅读(737) 评论(0) 推荐(1)

摘要: Ffmpeg是一款功能强大的视频处理工具,那么转码肯定不是问题的,因为项目的需求,对转码进行了研究。刚开始首先去看了ffmpeg源代码中的一个例子transcode.c,但是发现该例子更应该称之为remux的一个例子,并没有具体的涉及到转码。所以转而去ffmpeg工具中寻求帮助了。 ffmpeg转码 阅读全文
posted @ 2017-08-09 18:58 DoubleLi 阅读(362) 评论(0) 推荐(0)

摘要: 1.FFmpeg build for android random architectures with example jnihttps://github.com/appunite/AndroidFFmpeg2.ijkplayer - Android/iOS 基于FFMPEG库的播放器http:/ 阅读全文
posted @ 2017-08-09 18:56 DoubleLi 阅读(1390) 评论(0) 推荐(0)

摘要: 本例子是由FFEMPG的doc/example例子transcode.c修改而来,可以根据需求任意转换音视频的编码。 原来的例子的作用更类似于remux,并没有实现转码的功能,只是实现了格式转换,比如ts转avi等。并不能实现音视频编码格式的转换,比如将h264转为mpeg2。 FFMPEG转码的实 阅读全文
posted @ 2017-08-09 18:54 DoubleLi 阅读(1525) 评论(0) 推荐(0)

摘要: 保存音频包: 直接输出解复用之后的的音频数据码流。只需要在每次调用av_read_frame()之后将得到的音频的AVPacket存为本地文件即可。 但在分离AAC码流的时候,直接存储AVPacket后的文件可能是不能播放的。 分离H.264码流的时候,直接存储AVPacket后的文件可能是不能播放 阅读全文
posted @ 2017-08-09 18:43 DoubleLi 阅读(680) 评论(0) 推荐(0)

摘要: 农历2014年底了,将前段时间工作中研究的FFMPEG解码H264流程在此做一下整理,也算作年终技术总结了! H264解码原理: H264的原理参考另一篇博文 http://blog.csdn.net/rootusers/article/details/43563133 H264分为NAL(网络抽象 阅读全文
posted @ 2017-08-09 18:37 DoubleLi 阅读(3504) 评论(0) 推荐(1)

摘要: firehood的专栏 Wince嵌入式开发 firehood的专栏 Wince嵌入式开发 firehood的专栏 Wince嵌入式开发 firehood的专栏 Wince嵌入式开发 目录视图 摘要视图 订阅 目录视图 摘要视图 订阅 目录视图 摘要视图 订阅 赠书 | AI专栏(AI圣经!《深度学 阅读全文
posted @ 2017-08-09 15:26 DoubleLi 阅读(3561) 评论(0) 推荐(0)

摘要: 文章来源:http://www.cuplayer.com/player/PlayerCode/RTSP/2014/0706/1419.html FFmpeg实现监控摄像头的RTSP协议转RTMP协议直播,我们使用的摄像头是海康的可以通过rtsp协议获取到摄像头的直播数据。所以可以通过 整理了一下要解 阅读全文
posted @ 2017-08-09 14:19 DoubleLi 阅读(25487) 评论(2) 推荐(4)

摘要: 前面的文章中提到了通过RTSP(Real Time Streaming Protocol)的方式来实现视频的直播,但RTSP方式的一个弊端是如果需要支持客户端通过网页来访问,就需要在在页面中嵌入一个ActiveX控件,而ActiveX一般都需要签名才能正常使用,否则用户在使用时还需要更改浏览器设置, 阅读全文
posted @ 2017-08-09 14:08 DoubleLi 阅读(1937) 评论(0) 推荐(0)

摘要: 需求: 1. 纯静态编译ffmpeg ,即ldd ./ffmpeg 的结果是:not a dynamic executable 2. 修改ffmpeg 项目,添加自定义功能库 3. 自定义库由c++实现,要求能被纯c的ffmpeg项目调用 4. 自定义库必须使用g++ 的一些高级特性编译,要求g++ 阅读全文
posted @ 2017-08-09 14:02 DoubleLi 阅读(3407) 评论(0) 推荐(0)

摘要: 1、概述 本文主要讲述如何用ffmpeg代码实现自己的encoder。 2、代码 [cpp] view plain copy /* *本程序主要实现一个自己的encoder并加入到encoder链中去,供api调用 *作者:缪国凯(MK) *821486004@qq.com *2015-6-4 */ 阅读全文
posted @ 2017-08-09 13:58 DoubleLi 阅读(1176) 评论(0) 推荐(0)

摘要: .简介:把上一篇文章中的demuxer加入ffmpeg源码中去,使可以用命令行方式调用自定义的demuxer 第一步: 在libavformat目录下新建mkdemuxer.c和mkdemuxer.h,代码如下: mkdemuxer.c: [cpp] view plain copy /* *实现一个 阅读全文
posted @ 2017-08-09 13:57 DoubleLi 阅读(1480) 评论(0) 推荐(0)

摘要: 第一步: 在libavcodec目录下新建mkdecoder.c,并加入一下代码: [cpp] view plain copy /* *实现一个自己的decoder,编码工作其实就是把pkt的数据拷贝到frame *作者:缪国凯(MK) *821486004@qq.com *2015-6-5 */ 阅读全文
posted @ 2017-08-09 13:55 DoubleLi 阅读(482) 评论(0) 推荐(0)

摘要: 最近在研究ffmpeg的编译,之前使用的Ubuntu,需要安装虚拟机,非常麻烦,所以后来改研究在Windows平台编译。 一开始遇到很多挫折,参考了网上很多的帖子,但要么不全要么内容已过期,经过我的反复试验或研究,最终搞定了。在此记录一下,也希望能对编译ffmpeg的朋友们有所帮助。 首先安装Min 阅读全文
posted @ 2017-08-09 12:00 DoubleLi 阅读(4707) 评论(1) 推荐(0)

摘要: Ffmpeg移植过程: FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证。它的移植同样遵循LGPL或GPL移植方法:configure、make、make insatll。 1.下载ffmpeg开源库(ffmpeg-0.5.tar.bz2)放到相应文件夹。 阅读全文
posted @ 2017-08-09 11:57 DoubleLi 阅读(400) 评论(0) 推荐(0)

摘要: 前言 在写【单独编译使用WebRTC的音频处理模块 - android】一文之前,就一直想直接把WebRTC的音频处理引擎VoE整个儿编译出来供自己的项目使用,但限于技术拙劣、时间紧迫,所以没能成功。只得挨个挨个把引擎中的Aecm、Agc、Ns以及Vad模块单独编译出来凑合着用。虽能达到一定效果,但 阅读全文
posted @ 2017-08-09 11:32 DoubleLi 阅读(896) 评论(0) 推荐(0)

摘要: 这段时间在捣腾基于 RTMP 协议的流媒体直播框架,其间参考了众多博主的文章,剩下一些细节问题自行琢磨也算摸索出个门道,现将自己认为比较恼人的 AAC 音频帧的推送和解析、H264 码流的推送和解析以及网上没说清楚的地方分享给各位。 RTMP 协议栈的实现,Bill 直接使用的 libRTMP,关于 阅读全文
posted @ 2017-08-09 11:31 DoubleLi 阅读(3018) 评论(0) 推荐(0)

摘要: 1.需要原料如下: a.windows系统+浏览器 b.Shadowsocks2.5.1代理软件 c.Shadowsocks代理账号 2.步骤 a.下载Shadowsocks软件 b.解压并运行Shadowsocks2.5.1.exe 填入相应的”oversea.codeman.net”,”1003 阅读全文
posted @ 2017-08-09 11:27 DoubleLi 阅读(2) 评论(0) 推荐(0)

摘要: libx264版本是128libfaac版本是1.28 1、帧的划分 1.1 H.264帧 对于H.264而言每帧的界定符为00 00 00 01或者00 00 01。 比如下面的h264文件片断这就包函三帧数据 00 00 00 01 67 42 C0 28 DA 01 E0 08 9F 96 1 阅读全文
posted @ 2017-08-09 11:24 DoubleLi 阅读(671) 评论(0) 推荐(0)

摘要: 本文引用了下面几个网友的文章: http://sun3eyes.blog.163.com/blog/#m=0&t=3&c=rtmp http://sun3eyes.blog.163.com/blog/static/1070797922012913337667/ http://sun3eyes.blo 阅读全文
posted @ 2017-08-09 11:23 DoubleLi 阅读(1236) 评论(0) 推荐(0)

摘要: 前文我们说到如何在基于 libRTMP 库的流媒体直播过程中推送 AAC 、H264 音视频流。本文以上文为基础,阐释如何对 RTMP 包进行解析、重组得到原始的 AAC 音频帧以及 H264 码流。 在继续阅读本文之前,我们首先假设读者已经能够使用 libRTMP 库从 RTMP 直播服务器不断地 阅读全文
posted @ 2017-08-09 11:22 DoubleLi 阅读(1017) 评论(0) 推荐(0)

摘要: 0. 前言 我在前两篇文章中写了DirectShow捕获音视频然后生成avi,再进行264编码的方法。那种方法有一些局限性,不适合实时性质的应用,如:视频会议、视频聊天、视频监控等。本文所使用的技术,适用于这种实时性的应用,通过处理采集出来的音视频的每一帧,实现实时编码,实时输出。这是我做直播系列应 阅读全文
posted @ 2017-08-09 11:20 DoubleLi 阅读(941) 评论(0) 推荐(0)

摘要: 写在前面 FFmpeg是一个开源且跨平台的音视频解决方案,集采集、转码、流式化为一身,项目的libavcodec编解码模块和libavformat媒体格式模块,支持非常非常丰富的编解码格式和容器封装格式,是做媒体相关开发工作必须要掌握和借鉴的一个项目。定制和编译ffmpeg是做流媒体开发迟早要面对的 阅读全文
posted @ 2017-08-09 11:17 DoubleLi 阅读(503) 评论(0) 推荐(0)

摘要: 众所周知,RTMP是以flash为客户端播放器的直播协议,主要应用在B/S形式的场景中。本人研究并用C++开发实现了RTMP直播流协议的播放器,结合之前做的RTMP直播采集端,可以将RTMP协议完全扩展到C/S形式的应用场景中,这将对之后的通用、全平台的流媒体架构设计和实现,打下坚实的基础。 开发的 阅读全文
posted @ 2017-08-09 11:12 DoubleLi 阅读(843) 评论(0) 推荐(0)

摘要: 更新 【2015年2月15日】 Bill 这段时间没有再关注 WebRTC 以及音频处理的相关信息,且我个人早已不再推荐单独编译 WebRTC 中的各个模块出来使用。实际上本文的参考价值已经很小了,甚至可能会产生误导。不删这篇文章的原因在于文后有很多读者的讨论,其中的一些仍具备一定的价值,请大家务必 阅读全文
posted @ 2017-08-09 11:00 DoubleLi 阅读(1029) 评论(0) 推荐(0)

摘要: http://ftp.ussg.iu.edu/cygwin/x86_64/release/webrtc-audio-processing/libwebrtc-audio-processing-devel/ 阅读全文
posted @ 2017-08-09 10:57 DoubleLi 阅读(297) 评论(0) 推荐(0)

摘要: 2017-05-22更新! http://pan.baidu.com/s/1nvbTcRf jni修改后的代码,可以直接ndk-build出so文件!!!!!!!! webrtc代码在android和chromium项目中都有。但是android中的那个带有Android.mk,稍微修改下就能用nd 阅读全文
posted @ 2017-08-09 10:57 DoubleLi 阅读(996) 评论(0) 推荐(0)

摘要: 一般情况下我们最好是在一个平台上编译本平台的二进制程序,比如在32位平台上编译32位程序而在64位平台上编译64位程序。 现在64位的系统(这里主要指x86_64系统,包括AMD64和Intel的EM64T)已经开始广泛的使用起来了,甚至于你现在要是想买32位的处理器根本就没有。64位的系统在性能和 阅读全文
posted @ 2017-08-09 10:14 DoubleLi 阅读(1172) 评论(0) 推荐(0)

摘要: 编译64位程序,不一定要编译机器是64位的,但是32位机器默认安装的gcc编译环境还是不能用来编译64位程序。 编译64位程序,需要加上-m64编译器参数,默认安装的gcc已经支持该参数,但是缺少64位机器指令相关的文件,所以不能编译,会出现下面的错误 [plain] view plain copy 阅读全文
posted @ 2017-08-09 10:12 DoubleLi 阅读(3361) 评论(0) 推荐(0)