共 109 篇文章 |
|
由于要在crtmpserver中实现Http Live Streaming ,本人花了接近3个星期的时间,研究将H264与AAC打包为TS流并能在Ipad上通过HTML5播放,由于没有任何现成代码可供参考,打包代码全部手写,打包格式主要参考ISO/ICE 18318-1.pdf。aac打包成PES的时候,要想在ipad上播放必须设置PES_packet_length的长度,而视频可以设置为0,但是音频必须设置为正... 阅3 转自rookie 公众公开 15-10-21 19:57 |
最近在做海康相机rtsp连接获取音视频的工作,现在介绍一下分析过程和源码。【S6-REPLY】 Response: RTSP/1.0 200 OK\r\n CSeq: 7\r\n Session: 1350856257 RTP-Info: url=rtsp://192.168.1.145:554/MPEG-4/ch2/main/av_stream/trackID=1;seq=31283;rtptime=1712470431,url=rtsp://192.168.1.145:554/MPEG-4/ch2/main/av_stream/trackID=2;seq=... 阅202 转0 评0 公众公开 15-10-21 19:31 |
PCR的插入必须在PCR字段的最后离开复用器的那一时刻, 同时把27MHz系统时钟的采样瞬时值作为PCR字段插入到相应的PCR域。PCR-base的作用: a. 与PTS和DTS作比较, 当二者相同时, 相应的单元被显示或者解码. b. 在解码器切换节目时,提供对解码器PCR计数器的初始值, 以让该PCR值与PTS、DTS最大可能地达到相同的时间起点.PCR-ext的作用: 通过解... 阅84 转0 评0 公众公开 15-01-07 10:34 |
使用ffmpeg推流到Wowza.ffmpeg -i "%WMSAPP_HOME%/content/sample.mp4" -re -vcodec libx264 -fpre C:\usr\local\share\ffmpeg\libx264-ipod640.ffpreset -g 60 -vb 150000 -strict experimental -acodec aac -ab 96000 -ar 48000 -ac 2 -vbsf h264_mp4toannexb -f mpegts udp://127.0.0.1:10000?使用ffmpeg实时转码mms直播流有问题... 阅1881 转1 评0 公众公开 15-01-07 09:09 |
VLC1从Darwin服务器请求了媒体数据,然后打包成为TS流,并发送出去,VLC2接收TS流数据,播放;vlc -vvv --extraintf=loggerrtsp://115.182.51.78/tv/XingKongDianYing.sdp:sout=#duplicate{dst=rtp{dst=224.1.2.3,mux=ts,port=1234,sdp="file://10.57.26.88\guoq\test_100.sdp"}}3. 问题:VLC在流化过程中,图像质量很差,定... 阅212 转0 评0 公众公开 14-12-30 09:18 |
【音频AAC到TS注意要点:】aac打包成PES的时候,要想在ipad上播放必须设置PES_packet_length的长度,而视频可以设置为0,但是音频必须设置为正确的长度值,aac的长度不可能超过65535,所以也不可能导致PES_packet_length溢出。//data_len:AAC音频裸流的长度 // 3:PES头 //5: 如果是音频的话会有5个字节的PTS_ts_packet_pes_header.PES_packet_l... 阅42 转0 评0 公众公开 14-12-28 17:38 |
对于 NALU 的长度小于 MTU 大小的包, 一般采用单一 NAL 单元模式. 对于一个原始的 H.264 NALU 单元常由 [Start Code] [NALU Header] [NALU Payload] 三部分组成, 其中 Start Code 用于标示这是一个.这是一个序列参数集 NAL 单元. [00 00 00 01] 是四个字节的开始码, 67 是 NALU 头, 42 开始的数据是 NALU 内容.也就是说h264的 NALU payload = ... 阅10 转0 评0 公众公开 14-12-28 17:34 |
所以,对于封装成ts流,只需要去读取H264的原始文件,然后找到这个nal头,再将这个nalu(包含头和负荷)当成数据打包成pes再打成ts即可。这次的CMMB中,其视频帧只含I/P图像(帧),且每个图像只有1个片,所以就在读取264原始数据时读到I_slice或P_slice的时候,一并打入pts。相邻的视频帧的pts之差值为3600. 2、pes -> ts h264打包成ts的时... 阅41 转0 评0 公众公开 14-12-28 17:22 |
对于 NALU 的长度小于 MTU 大小的包, 一般采用单一 NAL 单元模式.对于一个原始的 H.264 NALU 单元常由 [Start Code] [NALU Header] [NALU Payload] 三部分组成, 其中 Start Code 用于标示这是一个 NALU 单元的开始, 必须是 "00 00 00 01" 或 "00 00 01", NALU 头仅一个字节, 其后都是 NALU 单元内容.打包时去除 "00 0... 阅1 转自SamBooksh... 公众公开 14-12-28 14:36 |
H.264 将构成一帧图像所有nalu 的集合称为一个AU,帧边界识别实际上就是识别AU。为了提供一种简单的AU 识别方案,H.264 规定一种类型为09 的nalu,即编码器在每次完成一个AU 编码后,在码流中插入一个类型为09 的nalu,在这个前提下,解码器只需要从码流中搜索类型为09 的nalu 即可获得一个AU。unsigned int FrameStartFound;signed int DecLoa... 阅2 转自SamBooksh... 公众公开 14-12-28 14:35 |