
音视频编码之传输篇
文章平均质量分 92
夜泊枫桥
这个作者很懒,什么都没留下…
展开
-
在哪个字段有判断I,B,P帧的信息
在哪个字段有判断I,B,P帧的信息?(MPEG2,H.264) ?1.根据TS包头中的PID找到TS流里的PAT表,其TS的PID为0x00;2.找到PAT表后,根据其中携带的PMT表的TS包PID找到PMT表;3.找到PMT表后,根据其中携带视频的TS包PID就可以判断出包含视频数据的TS包;4.对于mpeg-1和mpeg-2视频,一般在TS复用时一个PES包包含一个pict转载 2012-12-27 15:55:18 · 2918 阅读 · 0 评论 -
FFMPEG windows build procedure
#!/bin/sh # How to compile ffmpeg/x264 binaries for both 32bit and 64bit on Windows # # At first, you should install Git into your Windows. # 1. Download Git from http://msysgit.goog转载 2013-03-21 14:40:15 · 1566 阅读 · 0 评论 -
Using librtmp library to publish a live stream to Wowza Media Server
Hi,How to publish a stream using librtmp library? I read the librtmp man page and for publishing , RTMP_Write() is used.I am using C/C++ for my application.//Code//Init RTMP codeRTMP *r;char转载 2013-03-21 17:37:14 · 1956 阅读 · 0 评论 -
图像编码中的小白问题sps ,pps ,nalu ,frame ,silce ect....
H.264中NAL、Slice与frame意思及相互关系NAL nal_unit_type中的1(非IDR图像的编码条带)、2(编码条带数据分割块A)、3(编码条带数据分割块B)、4(编码条带数据分割块C)、5(IDR图像的编码条带)种类型与 Slice种的三种编码模式:I_slice、P_slice、B_slice还有frame的3种类型:I frame、P fram转载 2013-05-30 15:12:46 · 15853 阅读 · 0 评论 -
Live555: Compiling with VS2008
Compiling Live555 Streaming Media with Visual Studio 2008 isn’t obvious. Using Cygwin or MinGW is just a pain and frankly unnecessary. There is no built-in support for VS solution files, because Win转载 2013-05-31 15:21:12 · 1084 阅读 · 0 评论 -
关于RTP负载类型及时间戳介绍
首 先,看RTP协议包头的格式:前12个字节在每一个RTP packet中都存在,而一系列的CSRC标记只有存在Mixer时才有。 version (V): 2 bits 标明RTP版本号。协议初始版本为0,RFC3550中规定的版本号为2。 padding (P): 1 bit 如果该位被设置,则在该packet末尾包含了额外的转载 2013-06-19 10:17:00 · 1341 阅读 · 0 评论 -
IPTV支持TS流的方案形成过程
直播:现有的ISMA方式,流程如下: 视频采集-->视频编码-->RTP打包-->UDP组播; 音频采集-->音频编码-->RTP打包-->UDP组播; 上面是MP4live的工作流程。直播:MPEG TS流方式,流程如下: 视频采集-->视频编码--> 音频采集-->音频编码-->TS打包-->RTP打包-->UDP组播 上面是TS转载 2013-06-18 11:10:01 · 2973 阅读 · 0 评论 -
TS文件格式详解
最近彻底研究分析了ts文件格式,这里做下学习总结:简单的来说,ts文件中的信息其实就是通过负载类型字段来找,找到后把数据从负载中提取出来,ts中可以有很多媒体类型数据,比如说可以同时又音频和视频数据,可是要如何区分ts文件中的数据是音频还是视频呢?这就需要动用ts文件中的PSI描述说明了。PSI:在MPEG-II中定义了节目特定信息(PSI),PSI用来描述传送流的组成结构转载 2013-07-12 16:37:01 · 2838 阅读 · 0 评论 -
H264 TS/ES
ES流(Elementary Stream): 也叫基本码流,包含视频、音频或数据的连续码流. PES流(Packet Elementary Stream): 也叫打包的基本码流, 是将基本的码流ES流根据需要分成长度不等的数据包, 并加上包头就形成了打包的基本码流PES流. TS流(Transport Stream): 也叫传输流, 是由固定长度为188字节的转载 2013-07-17 16:45:28 · 2731 阅读 · 0 评论 -
nginx视频服务缓存方案设置指导
本文描述了如何通过设置nginx缓存达到降低服务器后端压力的效果以及结合nginx第三方插件ngx_cache_purge实现nginx缓存后的自动清理功能。具体实施步骤如下所示:第一步:获取清除清除指定URL的缓存安装介质wget http://labs.frickle.com/files/ngx_cache_purge-1.6.tar.gz第二步:编译并安装该插件(由于我在安装转载 2013-08-06 14:08:50 · 7697 阅读 · 1 评论 -
HLS 如何实现加密 ?
鉴于版权保护的原因,目前Android和iOS都可以正常观看HLS的视频,那么如何对此视频流进行加密?添加评论 分享赞同反对,不会显示你的姓名nfs king,国内知名广电企业新媒体售前,CNTV内容平…动态生成m3u8以及ts切片的地址,在下发到终端之后一定时间内,或下次请求时,改变生成的路径。目转载 2013-08-22 17:30:11 · 8274 阅读 · 0 评论 -
HLS与RTMP ,RTSP对比
你说的应该是 HTTP Live Streaming [1] 吧。这个是 Apple 为了提高流播效率开发的技术,特点是将流媒体切分为若干 TS 片段(比如每10秒一段),然后通过一个扩展的 m3u 列表文件将这些 TS 片段集中起来供客户端播放器接收。这样做相比使用 RTSP 协议的好处在于,一旦切分完成,之后的分发过程完全不需要额外使用任何专门软件,普通的网络服务器即可,大大降低了 C转载 2013-08-22 17:21:07 · 34594 阅读 · 1 评论 -
如何用nginx+ffmpeg实现苹果HLS协议 (http living stream)
分类: 视频开发 HLS协议2012-09-01 12:16 2063人阅读 评论(3) 收藏 举报目录(?)[+]什么是?HLS (HTTP Live Streaming) Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。FFmpeg是一个开源免费跨转载 2013-08-22 17:31:14 · 8019 阅读 · 1 评论 -
apple http live streaming 测试: 使用segmenter.exe + apache + vlc
apple http live streaming.基于http的视频流播放,笔者称它为视频切片技术,先是将视频文件通过mpegts编码,然后通过apple提供的小工具segmenter将视频文件切割成很多小文件并维护一个时间列表.这些文件可以直接放在网站目录下面通过http协议被下载播放[rainbird]。 windows版segmenter取自[exe], 提供了可执行文件转载 2013-09-02 18:48:11 · 2605 阅读 · 0 评论 -
基于HTTP Live Streaming(HLS) 搭建在线点播系统
1、 为何要使用HTTP Live Streaming可以参考wikipediaHTTP Live Streaming(缩写是 HLS)是一个由苹果公司提出的基于HTTP的流媒体 网络传输协议。是苹果公司QuickTime X和iPhone软件系统的一部分。它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备转载 2013-09-02 19:05:09 · 20211 阅读 · 1 评论 -
Building librtmp for iOS
I want to describe a detailed command line way to build librtmp and openssl in order to include in an iPhone / iOS project.You can use this as example to build any other library.I started fr转载 2013-03-21 12:06:17 · 1607 阅读 · 0 评论 -
H264实时编码及NALU,RTP传输
Standards Track [Page 2] RFC 3984 RTP Payload Format for H.264 Video February 2005 1.按照RFC3984协议实现H264视频流媒体nalu单元 包起始 0x 00 00 00 01H.264 NAL格式及分析器http://hi.baidu.com/zsw%5Fdavy/b ... c409cc转载 2013-03-19 19:18:35 · 1202 阅读 · 0 评论 -
Darwin Streaming Server 6.0.3 - setup, customization, plugin or module development, performance and
http://www.codeproject.com/Articles/41874/Darwin-Streaming-Server-6-0-3-setup-customizationIntroductionDarwin Streaming Server is Apple's open source streaming server for the internet. This ar转载 2012-12-28 16:13:58 · 2318 阅读 · 0 评论 -
开源RTSP 流媒体服务器
Columbia University rtspd - Supports serving of .au files via RTSP for Solaris, FreeBSD 3.x, Linux, Windows NT.Darwin Streaming Server - The open-source version of Apple’s QuickTime Streaming Server转载 2012-12-28 13:59:49 · 17579 阅读 · 1 评论 -
ffmpeg 中 swscale 的用法
如果想將某個PixelFormat轉換至另一個PixelFormat,例如,將YUV420P轉換成YUYV422,或是想變換圖的大小,都可以使用swscale達成。其中,PixelFormat 的列表在 libavutil/pixfmt.h 內定義。swscale的用法可以參考libswscale/swscale-example.c的sample code。主要function有三個转载 2013-01-29 19:53:10 · 1004 阅读 · 0 评论 -
利用libswscale转换yuyv422到yuv422p或rgb之间的转换, 视频翻转
yuyv422的数据来自ffdshow raw filter输出的yuv2, 其实就是yuv422p的packed模式, 要转成planar模式。对原始颜色空间的文件不确定是不是你想的那种颜色空间的话请先用ffplay播放一下看看正不正确,ffplay支持的颜色空间可以通过://视频ffplay -pix_fmts//音频ffplay -sample_fmts来查看支持的格转载 2013-01-29 20:54:27 · 2971 阅读 · 0 评论 -
将h.264视频流封装成flv格式文件(二.开始动手)
前面写了flv文件的解析,有h264裸流的话就开始封装吧。网上大多数都是用ffmeg库来做这个工作的,哎,学习资料少学不会,还是自己动手吧。封装前要先了解下h.264格式,只需要知道一点点就可以了,我看了h.264官方文档,我靠,3百多页,还全是中文,什么,是中文?既然是中文的我就勉强看下吧,我靠,看起来还很复杂的,果断不看了,不需要,也没时间,我又不做解码,这东西具体步骤资料又少,基本都是那转载 2013-01-30 16:15:53 · 2685 阅读 · 2 评论 -
将h.264视频流封装成flv格式文件(一.flv格式)
flv文件的格式其实网上资料还是不少,但是怎么封装成flv却不多。看了不少资料,找到了一个觉得还比较靠谱的:http://www.cnblogs.com/chef/archive/2012/07/18/2597279.html其实flv还是挺简单的一个视频格式,下面就来先谈一谈FLV的格式吧。 FLV是一个二进制文件,简单来说,其是由一个文件头(FLV header)和很多tag组转载 2013-01-30 16:14:43 · 2410 阅读 · 0 评论 -
ffmpeg Windows下采集摄像头一帧数据,并保存为bmp图片
这里请注意,在编译ffmpeg时,不要使用--disable-devices选项。使用--enable-encoder=rawvideo --enable-decoder=rawvideo启用rawvideo codec。代码如下:[cpp] view plaincopyprint?#include #in转载 2013-01-16 19:09:06 · 6150 阅读 · 3 评论 -
crtmpserver流媒体服务器的介绍与搭建
前言 Adobe的FMS(Flash Media Server)是很好用。但对应着分级授权的是money和有限功能开放。商业的东西既然用不起,也阻碍了我们的技术进步,那就只能求助于开源社区了。而crtmpserver就是FMS的替代者之一1. crtmpserver简介 crtmpserver的功能总来说:支持推送给它的rtmp流的接收与播放器请求的转载 2013-01-31 17:32:42 · 2448 阅读 · 0 评论 -
摄像头视频采集压缩及传输
引言:摄像头基本的功能还是视频传输,那么它是依靠怎样的原理来实现的呢?所谓视频传输: 就是将图片一张张传到屏幕,由于传输速度很快,所以可以让大家看到连续动态的画面,就像放电影一样。一般当画面的传输数量达到每秒24帧时,画面就有了连续性。下边我们将介绍摄像头视频采集压缩及传输的整个过程。一.摄像头的工作原理(获取视频数据)摄像头的工作原理大致为:景物通过镜头(LENS)生成转载 2013-03-12 16:00:31 · 2166 阅读 · 0 评论 -
H264通过RTMP发布 V2.0 (Red5 Wowza 测试通过)
直接上代码 [cpp] view plaincopy// demo.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include extern "C" { #include "../../common/common.h" #include "..转载 2013-03-18 16:45:56 · 2586 阅读 · 1 评论 -
Compile libRTMP with MinGW
The libRTMP library provides online multimedia streaming support for many open-source projects, such as ffmpeg and curl. I am building librtmp for use with ffmpeg and mplayer. I downloaded the lates转载 2013-03-19 13:38:46 · 1797 阅读 · 0 评论 -
利用nginx搭建http和rtmp协议的流媒体服务器
实验目的:让Nginx支持flv和mp4格式文件,同时支持Rtmp协议;同时打开rtmp的hls功能资料:HTTP Live Streaming(缩写是 HLS)是一个由苹果公司提出的基于HTTP的流媒体 网络传输协议。HLS只请求基本的HTTP报文,与实时传输协议(RTP)不同,HLS可以穿过任何允许HTTP数据通过的防火墙或者代理服务器。它也很容易使用内容分发网络来传输媒体流。转载 2013-03-20 14:32:33 · 2157 阅读 · 0 评论 -
rtmp 时间戳问题
花了5天时间,终于解决了一个bug,心情非常愉快,憋了这么久,不吐不快。 事情是这样的,前面跟外地一家公司,开发一个二路RTSP音视频合成一路RTMP音视频的设备。设备在公司内运行是好好的,可到了现场,出现直播流畅,录制后点播卡顿的问题。由于设备在外地,调试不方便。只能这边写日志打印代码,那边烧程序调试,于是远程调试的恶梦开始了。远程操作画面卡不说,关键是慢,本来一个几分钟的事情,远程要搞几十转载 2013-10-27 22:16:58 · 8942 阅读 · 4 评论