流媒体
文章平均质量分 74
feixiaku
这个作者很懒,什么都没留下…
展开
-
Gstreamer框架中使用gst-launch进行流媒体播放
Gstreamer框架中使用gst-launch进行流媒体播放Gstreamer是一套开源的流媒体框架,用其也可以进行流媒体开发,Gstreamer是基于glib库编写的,需要将多个不同功能的元件(element)装进一个箱柜(bin)中,在进行程序编写前,我们可以使用Gstreamer提供的一个小工具gst-launch在终端中在验证我们的想法,验证我们选择的元件和配置的管道是否正确,如果验转载 2016-03-10 00:52:52 · 2362 阅读 · 0 评论 -
TCP的三次握手(建立连接)和四次挥手(关闭连接)
参照:http://course.ccniit.com/CSTD/Linux/reference/files/018.PDFhttp://hi.baidu.com/raycomer/item/944d23d9b502d13be3108f61 建立连接: 理解:窗口和滑动窗口TCP的流量控制TCP使用窗口机制进行流量控制什么是窗口?连接建立时,各端分配一块缓冲区用转载 2015-04-19 23:07:43 · 670 阅读 · 0 评论 -
PCR理解
PCR的物理意义: PCR存在于TS包的自适应域中,如下图: PCR用来同步前端编码器和后端机顶盒的时钟 (1)PCR 仅仅在实时播出流中才有意义(即前端编码器实时编码或视频服务器实时播出,后端机顶盒实时接收的情况),对DVD机这类从文件中取TS流的设备PCR毫无意义。 (2)前端编码器工作原理:编码器中有一个2转载 2015-03-23 21:32:18 · 476 阅读 · 0 评论 -
VLC播放基于HLS协议m3u8文件的几个问题
最近比较忙,刚刚接手一个电视视频直播与点播的项目,服务器端视频流是基于HLS协议,关于HLS协议的相关介绍这里就不介绍了,请参考Apple的官网。刚接手项目的时候,试了几种开源播放器,MPlayer、VLC、ffplayer等,效果都不怎么样,播放m3u8 list的时候多多少少都有些问题,经过权衡以后,还是选择了VLC,看了大约一周VLC的源码,对VLC的源码架构有了一些了解,其中重点看了播放m转载 2015-02-08 17:16:34 · 18566 阅读 · 1 评论 -
VLC中的各个模块
General and Developers options--prefix=/usr \--host= \--build= \--enable-debug | --enable-release # Choose the mode you want--enable-optimizations # Optimisations are good i转载 2014-11-03 22:54:03 · 685 阅读 · 0 评论 -
VLC源代码学习zz
第一部分 变量及宏定义1.消息映射宏vlc_module_begin();…………………..vlc_module_end();2.结构中包含函数struct input_thread_t{VLC_COMMON_MEMBERSvlc_bool_t b_eof;vlc_bool_t b_out_pace_control;module_t * p_ac转载 2014-11-03 23:05:58 · 1107 阅读 · 0 评论 -
VLC官网资料
类图: http://www.videolan.org/developers/vlc/doc/doxygen/html/annotated.html原创 2014-11-03 23:06:24 · 742 阅读 · 0 评论 -
RTSP实例解析
核心提示:rtsp简介(ZT) Real Time Streaming Protocol或者RTSP(实时流媒体协议),是由Real network 和 Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议。RTSP提供一 种可扩展的框架,使能够提供能控制的,按需传输实时数据,比如音频和视频文件 rtsp简介(ZT)Real Time Streaming Protoc转载 2014-09-30 11:50:53 · 815 阅读 · 0 评论 -
TCP协议中的三次握手和四次挥手(图解)
http://blog.csdn.net/whuslei/article/details/6667471建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server转载 2015-04-19 23:04:12 · 488 阅读 · 0 评论 -
VLC架构剖析
VLC架构剖析1. VideoLan简介1.1 videolan组成Videolan有以下两部分组成:VLC:一个最主要的部分,它可以播放各种类型的媒体文件和流媒体文件,并且可以创造媒体流并保存成各种格式的媒体文件,这些文件的质量要比没保存前的件好。videolan作为客户端可以播放本地文件,httP://,rtsp://。VLS:是一种流服务器,专门用来解决流的各种问题,它也转载 2015-04-08 19:16:35 · 842 阅读 · 0 评论 -
Gstreamer中一些gst-launch常用命令
Gstreamer中一些gst-launch常用命令用Linux系统中使用gstreamer架构做对媒体开发时,gst-inspect和gst-launch是两个非常使用的小工具,gst-inspect在开发时用于查询库各个插件element的详细信息,后者用于在终端快速构建一条pipeline用于播放多媒体。下面列出我在以前的学习和项目开发时常用的gst-launch播放各种多媒体文件的实例转载 2016-03-10 00:49:46 · 3322 阅读 · 0 评论 -
HLS/MPEG-DASH/RTMP with nginx
目录(?)[-] GStreamer and Liquidsoap nginx and nginx-rtmp Compiling from source Configuring nginx Streaming a test video Configuring Liquidsoap Setting up a playlist In conclusion With a few open转载 2016-02-16 12:08:22 · 1990 阅读 · 0 评论 -
MP4文件格式详解——元数据moov(三)tref box
元数据moov(三)tref box(ISO-14496-12)Author:Pirate LeoEmail:codeevoship@gmail.comISO 14496 - 12 定义了一种封装媒体数据的基础文件格式,mp4、3gp、ismv等我们常见媒体封装格式都是以这种基础文件格式为基础衍生的。如果从全局角度了解基础文件格式,请看我之前的博文《MP4文转载 2015-12-25 15:29:09 · 799 阅读 · 0 评论 -
MP4文件格式详解——元数据moov(二)tkhd box
元数据moov(二)tkhd box(ISO-14496-12)Author:Pirate LeoEmail:codeevoship@gmail.comISO 14496 - 12 定义了一种封装媒体数据的基础文件格式,mp4、3gp、ismv等我们常见媒体封装格式都是以这种基础文件格式为基础衍生的。如果从全局角度了解基础文件格式,请看我之前的博文《MP4文转载 2015-12-25 15:22:13 · 840 阅读 · 0 评论 -
MP4文件格式详解——元数据moov(一)mvhd box
元数据moov(一)(ISO-14496-12)Author:Pirate LeoEmail:codeevoship@gmail.comISO 14496 - 12 定义了一种封装媒体数据的基础文件格式,mp4、3gp、ismv等我们常见媒体封装格式都是以这种基础文件格式为基础衍生的。如果从全局角度了解基础文件格式,请看我之前的博文《MP4文件格式详解——结构概述》转载 2015-12-25 15:12:26 · 1395 阅读 · 0 评论 -
MP4文件格式详解——结构概述
MP4文件格式详解(ISO-14496-12/14)Author:Pirate LeoEmail:codeevoship@gmail.com一、基本概念1、 文件,由许多Box和FullBox组成。2、 Box,每个Box由Header和Data组成。3、 FullBox,是Box的扩展,Box结构的基础上在Header中增加8bits versio转载 2015-12-25 15:10:19 · 2022 阅读 · 0 评论 -
JAVA编写的一个简单的Socket实现的HTTP响应服务器
JAVA编写的一个简单的Socket实现的HTTP响应服务器,看后就很容易理解Web服务器的原理了。[java] view plaincopypackage test.io; import java.net.*; import java.io.*; /** * 一个简单的Socket实现的HTTP响应服转载 2015-08-13 23:55:31 · 645 阅读 · 0 评论 -
AVA编写的使用Socket模拟Http的GET操作
JAVA编写的使用Socket模拟Http的GET操作,看后就很容易理解Web浏览器的原理了。[java] view plaincopyimport java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader;转载 2015-08-13 23:54:37 · 560 阅读 · 0 评论 -
vs2010编译live555源码
最近加入了公司的C++视频小组,利用中秋这个假期将研究了一些live555的源码,现在先将如何编译使用vs2010编译live555,整理出来,对以后分析代码有很大帮助。1.下载live555源码,下载地址:http://www.live555.com/liveMedia/public/live555-latest.tar.gz2.live55简介Live555 是一个为流转载 2014-09-02 22:08:17 · 644 阅读 · 0 评论 -
live555 关于使用ffmpeg扩展文件格式
live555目前只mpg、mkv、webM等少数几种音视频混合的文件,可以使用ffmpeg来扩展live555所支持的文件格式。花了一个多月的时间,终于可以支持mp4和avi了,媒体格式支持mpeg4、h264、mp3、aac。主要是参考了live555中mpg的实现。1.扩展mediaServer的主要步骤 1)定义一个RTSP Server类MyRTSPSe转载 2014-09-04 21:49:44 · 660 阅读 · 0 评论 -
H.264 基础及 RTP 封包详解
一. h264基础概念1、NAL、Slice与frame意思及相互关系 1 frame的数据可以分为多个slice.每个slice中的数据,在帧内预测只用到自己slice的数据, 与其他slice 数据没有依赖关系。 NAL 是用来将编码的数据进行大包的。 比如,每一个slice 数据可以放在NAL 包中。I frame 是自己独立编码,不依赖于其他转载 2014-09-03 14:02:10 · 643 阅读 · 0 评论 -
live555源代码简介
live555源代码简介liveMedia项目的源代码包括四个基本的库,各种测试代码以及IVE555 Media Server。四个基本的库分别是UsageEnvironment&TaskScheduler,groupsock,liveMedia,BasicUsageEnvironment。UsageEnvironment和TaskScheduler类用于事件的调度,实现异步读转载 2014-09-05 13:05:13 · 441 阅读 · 0 评论 -
AAC ADTS格式分析
目录(?)[-]ADTS内容及结构将AAC打包成ADTS格式1.ADTS是个啥ADTS全称是(Audio Data Transport Stream),是AAC的一种十分常见的传输格式。记得第一次做demux的时候,把AAC音频的ES流从FLV封装格式中抽出来送给硬件解码器时,不能播;保存到本地用pc的播放器播时,我靠也不能播。当时崩溃了,后来通过查找资转载 2014-09-05 10:31:12 · 514 阅读 · 0 评论 -
自己动手写RTP服务器——用RTP协议传输TS流
目录(?)[-]自己动手写RTP服务器用RTP协议传输TS流预备知识参考代码测试自己动手写RTP服务器——用RTP协议传输TS流上一篇文章我们介绍了关于RTP协议的知识,那么我们现在就自己写一个简单的传输TS流媒体的RTP服务器吧。预备知识关于TS流的格式:TS流封装的具体格式请参考文档ISO/IEC 13818-1。这里我们只需要了解一转载 2014-09-05 10:04:41 · 2256 阅读 · 3 评论 -
自己动手写RTP服务器——关于RTP协议
目录(?)[+]自己动手写RTP服务器——关于RTP协议本文会带领着你一步步动手实现一个简单的RTP传输服务器,旨在了解RTP流媒体传输协议以及一些关于多媒体编解码的知识。关于RTP协议的必备知识要动手实现一个协议,当然首先需要阅读该协议的文档。RTP协议的文档,有rfc1889、rfc1890、rfc3550,其中rfc3550是现在的版本,另外两个是转载 2014-09-05 10:16:03 · 929 阅读 · 0 评论 -
live555源代码分析
live555源代码分析源代码下载(VC6工程):http://download.csdn.net/detail/leixiaohua1020/6374387liveMedia 项目(http://www.live555.com/)的源代码包括四个基本的库,各种测试代码以及Media Server。四个基本的库分别是: UsageEnvironment&Task转载 2014-09-04 23:56:14 · 1042 阅读 · 0 评论 -
几个开源的视频编解码器介绍
http://blog.csdn.net/xy365/article/details/8424600排名分先后。一、ffmpeg ffmpeg属于GPL或者LGPL,确切属于哪一种,要根据编译选项,因为它里面的库有些属于GPL的有些属于LGPL的,你编译的时候打开或者关闭这些库的选项,就决定了它属于哪一种。http://www.ffmpeg.org/leg转载 2014-03-29 17:54:26 · 19466 阅读 · 1 评论 -
怎样在视频添加字幕? 很简单3步曲.
如何在视频添加字幕?现在,视频文件的制作者都比较钟爱为自己制作的视频文件添加上字幕,那么字幕该如何加呢?第一步:首先我们先对smartmovie PC端软件进行一下相应的设置。打开参数选择,此时会弹出一个窗口,在“自动添加字幕”以及“添加字幕”选项前边打钩,字幕字体选择“Chinese GB2312”。第二步此时PC端设置完毕。下面我们可以把片源通过转载 2014-01-19 15:30:11 · 3777 阅读 · 0 评论 -
输入url,后台都做了哪些工作
1、你在浏览器中输入某个URL我们从这里开始:图 12、浏览器查找该域名对应的IP地址图 2第一步是找出所访问域名对应的IP地址,按以下顺序循环查找DNS记录:◆浏览器缓存 - 浏览器会缓存DNS记录一段时间,有趣的是,操作系统不会告诉浏览器每条DNS记录的存活时间,浏览器按照固定的周期进行缓存(每种浏览器的保留时间从2-30分钟长度转载 2013-05-19 15:23:59 · 828 阅读 · 0 评论 -
TS流分析
一 从TS流开始 数字电视机顶盒接收到的是一段段的码流,我们称之为TS(Transport Stream,传输流),每个TS流都携带一些信息,如Video、Audio以及我们需要学习的PAT、PMT等信息。因此,我们首先需要了解TS流是什么,以及TS流是怎样形成、有着怎样的结构。(一) TS流、PS流、PES流和ES流都是什么? ES流(Ele转载 2014-09-07 13:37:45 · 951 阅读 · 0 评论 -
live555杂谈系列(一)---source,sink简介
最近一段时间一直在学习live555,相信各位新手朋友们一开始肯定跟我一样,在网上查看各种资料,可是看完之后依然是一头雾水。现在我把我这一段时间学习所得给大家分享一下,希望对新接触live555的新手们有所帮助,高手请绕行,不喜勿喷,谢谢合作。首先来说一下live555的学习步骤,首先live555自带的例子一定要仔细研究一下,可以给我们很多启发。其次,一定要把握好live转载 2014-09-11 23:28:17 · 2877 阅读 · 0 评论 -
关于ES、PES、PS以及TS码流
一、基本概念1)ES ES--Elementary Streams (原始流)是直接从编码器出来的数据流,可以是编码过的视频数据流(H.264,MJPEG等),音频数据流(AAC),或其他编码数据流的统称。ES流经过PES打包器之后,被转换成PES包。 ES是只包含一种内容的数据流,如只含视频或只含音频等,打包之后的PES也是只含一种性质的ES,如只含视频ES的PES转载 2014-09-03 11:54:01 · 756 阅读 · 0 评论 -
开源项目live555学习心得(一)
最近因项目开发需要,开始学习开源项目live555,特别将个人的一些学习心得做一下记录,如有理解不正确之处,欢迎各位朋友指出。首先是源码的下载,这可以从http://www.live555.com上下载,同时上面亦提供了相关的文档,文档虽较为粗糙,但总比找不到任何文档说明强。当然,我在学习的过程中,也从网上查找了一段时间,收获还是有一点的,其中就有诸如:RTSP服务器实例live555源代码分转载 2014-09-03 22:12:07 · 626 阅读 · 0 评论 -
RTSP服务器实例live555源代码分析
1. RTSP连接的建立过程 RTSPServer类用于构建一个RTSP服务器,该类同时在其内部定义了一个RTSPClientSession类,用于处理单独的客户会话。 首先创建RTSP服务器(具体实现类是DynamicRTSPServer),在创建过程中,先建立Socket(ourSocket)在TCP的554端口进行监听,然后把连接处理函数句柄(RTSPServer::incomingConn转载 2014-09-03 22:04:38 · 589 阅读 · 0 评论 -
TS流文件中提取I帧的方法
ts流文件是MPEG-2的数字电视标准格式,目前使用最为广泛。在一些视频服务中,如VOD推流的快进、快退中,经常需要快速从ts节目流中找出I帧(I-frame)来,以便推流服务器可以推送只包含视频画面而没有声音的ts数据到终端,而终端并不需要做任何特殊处理,即可实现快进/快退的画面效果。因此,实现上需要做到以下三点:1、要找到I帧2、确保找出来的I帧数据前后都要完整,即符合转载 2014-09-03 11:51:59 · 3609 阅读 · 0 评论 -
用实例分析H264 RTP payload
H264的RTP中有三种不同的基本负载(Single NAL,Non-interleaved,Interleaved)应用程序可以使用第一个字节来识别。 在SDP中也说明了本次会话的属性SDP 参数 下面描述了如何在 SDP 中表示一个 H.264 流:. "m=" 行中的媒体名必须是 "video". "a=rtpmap" 行中的编码名称必须是 "H264"..转载 2014-09-03 14:04:54 · 874 阅读 · 0 评论 -
MPEG-2中TS码流包结构和功能应用
【摘 要】本文就有线电视数字信号TS流的形成原理和包结构的相关内容进行了论述。【关键词】ES;MPEG-2;TS;复用/解复用技术;包结构 一、 概述随着有线数字电视的普及,MPEG-2系统复用技术的地位亦发凸显,根据传输媒介的质量不同,MPEG-2中定义了两种复用信息流:传输流(TS)和节目流(PS:ProgramStream)。TS流与PS流的区别在于TS流的包结构是固定长度转载 2014-09-03 14:05:47 · 1213 阅读 · 0 评论 -
Live555学习之路(一)
有关live555的介绍,还是百度百科:http://baike.baidu.com/view/3495912.html?fromTaglist 下载live555http://www.live555.com/liveMedia/public/ 我在windows下运行,开始用msys环境编译,通不过,于是网上找了vs2008编译环境,lihao_n转载 2014-09-02 22:09:20 · 486 阅读 · 0 评论 -
RTSP、HTTP、HTTPS、SDP四种协议详解
----------------------------------------转载请注明出处http://blog.csdn.net/tjy1985/article/details/7996121------------------------------------------------------- 从这篇开始我们将进入流媒体的环节,流媒体在android中有nuplayer转载 2014-09-12 16:20:54 · 4179 阅读 · 0 评论 -
RTP如何打包H264数据
拿到H264的裸流数据是,一般码流结构是SPS,PPS,I帧,P帧......SPS,PPS,I帧,P帧...........。用RTP打包H264数据时,SPS和PPS可以不发,直接发I帧和P帧数据即可。还要看I帧和P帧有多大,如果小于MTU就直接加RTP包发送就可以,如果大于MTU就得分片了。具体的分片方法可以参考RFC3984中。 我用的FU-A,分片方式。转载 2013-04-23 20:13:42 · 751 阅读 · 0 评论