流媒体开源技术
文章平均质量分 77
本专栏介绍和流媒体相关的应用,包括ffmpeg,live555,sdl,boost等内容,其中ffmpeg是一个用来编解码的开源库;live555用来做流媒体的传输,sdl用来做流媒体的渲染,boost库是准c++标准的库,应用场合相当广泛!
smilestone322
通过软考: 系统架构设计师和信息系统项目管理师考试
工业相机和DVR开发,熟悉windows驱动开发,camera sdk开发,3D摄像头sdk开发。
联系方式:smilestone322@sina.com
展开
-
live555 delay task 和Event TriggerId 源码解析
五> Live555的延迟任务(delay task) 5.1)scheduleDelayedTaskTaskToken BasicTaskScheduler0::scheduleDelayedTask(int64_tmicroseconds, TaskFunc*proc,原创 2014-07-23 14:32:03 · 2890 阅读 · 0 评论 -
vlc流媒体编译环境搭建 (cygwin+vlc1.1.3)
vlc 编译环境搭建原创 2010-09-24 16:52:00 · 3786 阅读 · 7 评论 -
使用Boost Format库实现sprintf和CString的Format功能
使用Boost Format库实现sprintf和CString的Format功能;#include "boost/format.hpp"using namespace boost;int _tmain(int argc, _TCHAR* argv[]){ format fmt("%1%.jpg"); fmt %1 ; string s = fmt.str原创 2014-04-18 16:58:04 · 1402 阅读 · 0 评论 -
使用boost filesystem 库实现枚举指定目录下的所有jpeg图片;
如题:原创 2014-04-17 17:33:51 · 4004 阅读 · 0 评论 -
使用boost 的thread和asio库实现jpeg图片传输
使用boost的thread和asio库实现jpeg图片传输 目的:熟悉boost thread和asio库; 1)实现jpeg图片传输;客户端将jpeg图片传输到服务端,服务端解码显示,解码使用ffmpeg;显示使用ddraw;2)客户端使用boost thread开一个线程不断的读jpeg图片,然后进行传输,传输使用asio库;3)服务端使用asio库,进行jpeg原创 2014-04-17 16:40:22 · 4071 阅读 · 0 评论 -
ffmpeg 编解码有用网址
http://www.360doc.com/relevant/111546442_more.shtml http://wmnmtm.blog.163.com/blog/static/3824571420115225126807/ VC6中文企业版(sp6)编译x264之我的实战,提供全部资源下载 http://topic.csdn.net/u/20090114/20/原创 2011-07-06 16:35:42 · 1175 阅读 · 0 评论 -
ffmpeg av_open_input_file 不能打开文件原因
初始化时,没有 av_register_all();原创 2012-05-21 20:18:22 · 5476 阅读 · 3 评论 -
如何使用cygwin编译 ffmpeg
1)下载cygwin,本来想下载个最新的版本,在官网上找了下,全是英文的,又搜了google,就找到这个了http://download.csdn.net/source/29888562)下载安装mingw后,运行在安装目录下的\MSYS目录下的msys.bat。,我的是D:\MinGW32\MSYS\msys.bat。3) ffmpeg0.6的官方下载地址为:ffmpeg-0.6.tar原创 2012-05-21 20:33:36 · 3676 阅读 · 0 评论 -
ffmpeg h264实时解码用到的函数
avcodec_init(); avcodec_register_all(); av_register_all();avcodec_find_decoderavcodec_alloc_contextavcodec_alloc_frameavcodec_openavpicture_get_sizeavpicture_fillavcodec_decode_v原创 2012-05-23 18:41:28 · 2377 阅读 · 0 评论 -
avcodec_decode_video 解码失败,got_picture返回0
//H264解码器初始化bool H264DecodeInit(void){ // int numBytes; avcodec_init(); /* register all the codecs */ avcodec_register_all(); codecContex原创 2012-05-23 18:47:18 · 9241 阅读 · 12 评论 -
sws_getContext /sws_scale内存泄露问题
在做H264 流媒体解码时候,发现sws_getContext /sws_scale内存泄露问题,注意sws_getContext只能调用一次,在初始化时候调用即可,另外调用完后,在析构函数中使用sws_free_Context,将它的内存释放。我在函数中 pSwsCtx = sws_getContext(w, h, src_pix_fmt,原创 2012-05-31 10:00:48 · 6266 阅读 · 2 评论 -
视频编解码,FFMPEG,RTP问题汇总
1)ffmpeg如何判断一帧数据是正确的?ffmpeg有没有错误处理的模式,能使花屏的帧(h264格式的)不显示出来?2) H264网络传输过程中丢包造成马赛克问题? 原因:1. 接收网络数据包后没有调整包的顺序,譬如说接受包的顺序是1,3,4,2,如果没有调整顺序的话,发送给解码器的顺序也是1,3,4,2,这样肯定会出现马赛克 ;2. 接收网络数据包后没有没有合并数据包,众所原创 2013-01-22 13:44:38 · 4131 阅读 · 2 评论 -
ffmpeg v1.2.1 将Yuv420p 编码成AVI源码
最近要对yuv420p的数据进行编码,看了下ffmpeg的例子,恰好它有一个例子,直接上代码; // TestFFMPEG.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"//int _tmain(int argc, _TCHAR* argv[])//{// return 0;//}///** Copyright (原创 2013-11-28 11:04:32 · 4283 阅读 · 0 评论 -
ffmpeg avcodec_encode_video2 前面10多帧不能实时编码
ffmpeg avcodec_encode_video2 前面10多帧不能实时编码,查找原因!版本v1.2.1原创 2013-12-01 17:29:15 · 4986 阅读 · 0 评论 -
ffmpeg v2.1 提示错误
ommon.h(30) : fatal error C1189: #error : missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS原因:FFmpeg is written in C99, thus some features may not be compilable or usable in C++.原创 2013-12-27 14:39:10 · 3148 阅读 · 0 评论 -
avio_open成功avformat_write_header失败
ffmpeg 写avi时候,avio_open成功,但是写avi头时调用avformat_write_header失败原创 2014-01-04 14:53:55 · 16108 阅读 · 7 评论 -
ffmpeg h264实时流如何录像成Avi
h264一帧一帧的数据如何 赋值给av_interleaved_write_frame 函数进行写文件呢?原创 2014-01-04 16:56:55 · 7714 阅读 · 1 评论 -
ffmpeg jpeg 转yuv422p(420p)
ffmpeg 将jpg转为yuv420p ffmpeg -i xxx.jpg -s 1624x1236 -pix_fmt yuvj420p xxx.yuv jpeg转yuv422pffmpeg -i a.jpg -s 640x480 -pix_fmt yuv422p a.yuvffmpeg -pix_fmt yuv422p -s 640x480 -i a.yuv b.jpg原创 2014-03-12 17:55:44 · 22701 阅读 · 1 评论 -
ffmpeg av_interleaved_write_frame 在磁盘满的情况下报错,提示除数为0
ffmpeg av_interleaved_write_frame 在磁盘满的情况下报错,提示除数为0的解决办法。原创 2014-06-23 21:05:33 · 3780 阅读 · 0 评论 -
live555编译
http://www.cnblogs.com/skyseraph/archive/2012/04/11/2442840.html原创 2013-10-11 14:01:55 · 1061 阅读 · 0 评论 -
庖丁解牛-----Live555源码彻底解密(v0.78--2013.09.18)
如题:原创 2013-12-02 18:51:50 · 2288 阅读 · 0 评论 -
庖丁解牛-----Live555源码彻底解密(根据testRTSPClient讲解)
RTSP的Client建立流程(testProgs中的testRTSPClient示例) 1) Sink和sourceSource是接收数据,Sink是消费数据; int main(intargc, char** argv) { // Begin by setting up our usage environment: Task原创 2013-12-02 19:20:33 · 6364 阅读 · 5 评论 -
庖丁解牛-----Live555源码彻底解密(根据OpenRTSP讲解)
OpenRtsp中写H264文件注意的地方: 1)接受buffer保存到文件void H264VideoFileSink::afterGettingFrame(unsignedframeSize, unsignednumTruncatedBytes, structtimeval presentationTime) { unsigned char const s原创 2013-12-02 19:24:57 · 3079 阅读 · 0 评论 -
live555 命令行Rtsp服务端--vs2008源码
// TestDemandRtspServer.cpp.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"//int _tmain(int argc, _TCHAR* argv[])//{// return 0;//}/**********This library is free software; you can redistr原创 2013-12-02 19:42:23 · 1634 阅读 · 0 评论 -
LIVE555 Proxy Server--vs2008 源码
/**********This library is free software; you can redistribute it and/or modify it underthe terms of the GNU Lesser General Public License as published by theFree Software Foundation; either ver原创 2013-12-02 19:43:54 · 1868 阅读 · 1 评论 -
live555 TestRtspClient -vs2008编译源码;
// TestRtsp.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"//#include "liveMedia.hh"//#include "BasicUsageEnvironment.hh"/**********This library is free software; you can redistribute it and/or原创 2013-12-02 19:45:39 · 2314 阅读 · 0 评论 -
Live555+FFMPEG+ddraw实现H264码流接收,解码,显示
1)H264码流接收采用的是live555,live555会将sps,pps,I帧,p帧都是单独的包过来的,在接收到Buffer,需要对它进行组成帧,live555自己支持I帧和P帧的组帧的,但是我们交给ffmpeg前,必须对在每帧之前插入00 00 00 01开始码,同时如果是I帧,必须将sps,pps,I帧同时交给ffmpeg才能解码的,所以对live555的Buffer的进行组帧;原创 2013-12-10 10:48:46 · 3626 阅读 · 0 评论 -
庖丁解牛-----Live555源码彻底解密(testRTSPClient流程图)
通过TestRtspClient的例子,对rtsp数据流程有深入的了解,比如rtsp如何建立,rtsp source和sink怎么交互数据等; 1)describe建立流程如下: 2)setup建立流程如下: 3)play建立流程如下: 4)source和sink交互流程如下:原创 2013-12-13 09:53:39 · 9468 阅读 · 16 评论 -
庖丁解牛-----Live555源码彻底解密(testRTSPClient --rtsp交互流程)
发送describe:DESCRIBE rtsp://192.168.3.79:8554/h264ESVideoTest RTSP/1.0CSeq: 2User-Agent: f:\ffmpeg-encode-decode\流媒体\Live555\live555\live555-latest\TestLive555\Debug\TestRtspClient.exe (LIVE555 S原创 2013-12-13 10:32:21 · 4423 阅读 · 2 评论 -
live555实现Rtp码流读到一帧数据怎么传递客户端
1)实现一个sink读取Live555的一帧数据后,测试发现有的码流sps,pps,I帧是单独的数据包传递过来的,这样的话,在sink里面需要对这些数据进行组帧,live555有没有功能可以自己将这些数据包组成一帧数据,并且自动添加00 00 00 01这样的头信息呢,如果有,就不要自己去组帧了,组帧还多一次拷贝; 2)获取到帧Buff后,有2种方法可以将Buff返回给客户端进行解码显示;原创 2013-12-18 17:04:54 · 4214 阅读 · 0 评论 -
ffmpeg 解码出现问题,v1.2.1版本,v2.1版本有问题,v0.6.0版本没有问题
1)当Live555收到的数据中连续来两个I帧,然后P帧,ffmpeg解码有问题;2) 通过live555将阿波罗的相机的h264码流录制成avi,然后通过ffmpeg转成.h264,在用live555的testDemandRtspServer例子做服务器,然后通过testRtspClient做客户端进行接收,实时解码,发现前面一个GOP的数据解码不出来;前面一个GOP也是有sps pps I原创 2013-12-19 19:28:49 · 6314 阅读 · 0 评论 -
庖丁解牛-----Live555源码彻底解密(根据testOnDemandRTSPServer例子讲解)
testOnDemandRTSPServer.cpp 讲解 Main函数:int main(intargc, char** argv) { // Begin by setting up our usage environment: TaskScheduler* scheduler = BasicTaskScheduler::createNew原创 2013-12-21 14:37:51 · 3201 阅读 · 0 评论 -
live555 sink 接收内存管理---丢帧策略
如题:原创 2013-12-28 14:43:38 · 5075 阅读 · 1 评论 -
vlc 调用live555的源码分析--vlc v2.1.1版本
VLC调用Live555源码解析 以前在看live555的源码和例子的时,发现live555的例子都是回调,这样我们根本无法判断命令是否发送成功,也无法判断发送是否超时;网上搜索,也没有看到有用的资料;于是就分析了VLC的live555.cpp文件,对该问题恍然大悟,于是记下vlc live555的Rtsp连接建立过程,供大家参考,我们可以从vlc怎么调用live555.cpp中看到vlc 是原创 2014-01-09 10:38:09 · 5309 阅读 · 0 评论 -
Live555 的一个缺陷--例子不能支持多线程(已经修改成支持多线程)
1)我对Live555进行了一次封装,但是Live555 是单线程的,里面定义的全局变量太多,我封装好dll库后,在客户端调用,因为多个对话框中要使用码流,我就定义了多个对象从设备端接收码流,建立多个连接,但是当一路码流退出,然后在退出另外的一路码流时,库里面出现问题,原因是Live555 里面的全局变量被破坏了!原创 2014-01-15 19:54:25 · 7662 阅读 · 16 评论 -
基于live555的rtsp封装rtspperf的客户端源码解析
项目地址:http://sourceforge.net/projects/rtspperf/实现了基于epoll模型的TaskScheduler,而live555默认实现使用select模型,select模型有一些已知的限制(FD最大值不能超过1024)实现了rtsp client 框架,提供一个回调接口回调数据。rtspperf实现了多线程调用live555,做客户端的可以参考!原创 2014-01-16 15:29:44 · 3763 阅读 · 1 评论 -
庖丁解牛-----Live555源码彻底解密(根据MediaServer讲解Rtsp的建立过程)
live555 MediaServer.cpp服务端源码讲解原创 2014-02-04 14:03:31 · 7045 阅读 · 1 评论 -
庖丁解牛-----Live555源码彻底解密(RTP打包)
本文主要讲解live555的服务端RTP打包流程原创 2014-02-04 16:28:18 · 3366 阅读 · 0 评论 -
庖丁解牛-----Live555源码彻底解密(RTP解包)
庖丁解牛-----Live555源码彻底解密(RTP解包)原创 2014-02-05 16:07:12 · 5106 阅读 · 4 评论