当前位置:  技术问答>linux和unix

如何识别一个数据包是视频数据包

    来源: 互联网  发布时间:2016-08-03

    本文导语:  用ethereal捕获本机的数据包,但如何判断是不是视频数据包呢?     有些流媒体传输时采用了rtp/rtcp协议,可以从协议上判断是视频(或音频)数据包;但有些可以传输时直接使用了http协议,或者直接使用了udp协议,...

用ethereal捕获本机的数据包,但如何判断是不是视频数据包呢?
    有些流媒体传输时采用了rtp/rtcp协议,可以从协议上判断是视频(或音频)数据包;但有些可以传输时直接使用了http协议,或者直接使用了udp协议,遇到这种情况,该如何判断是否为视频数据包?

    我的想法:找出现有的视频数据压缩格式(如AVI、MPEG-4、H.23X)的关键字,根据这些关键字进行匹配,但这些压缩格式有关键字吗?那这些关键字到底是什么呢?

    谢谢!

|
除去RTP的头之后,如果是个视频包, 前4个byte(假设指针为pbuffer)就会有它的编码信息, 后四个byte是I帧和P帧的信息.
给你看几行代码:
if((pbuffer & 0x3fcffff) == 0x2800000 ) {     //decode H263 bit stream
////H263
}else{
////MPEG-4
}
.....

if((((pbuffer & 0x3fcffff) == 0x2800000)&&(((pbuffer+4) & 0x2) == 0x2/*not I-frame?*/))||(head_mpeg_h263 == 0xb6010000)) {//the frame is a P-frame of H263 or a I/P-frame of mpeg     
{
//////////P 帧
}else if((((pbuffer  & 0x3fcffff) == 0x2800000)&&(((pbuffer+4) & 0x2) == 0)/* I-frame?*/)||(pbuffer  == 0x00010000)) {    
/////////I帧

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在xp系统下,安装linux的过程中分区选择时不能识别windows的分区,只能识别整个硬盘
  • Red hat 9.0 无法识别USB移动硬盘, 无法识别网卡和无线网卡,请问如何安装驱动?
  • 为什么计算机设计成只识别0/1二进制而不能直接识别如ASCII码或英文单字??
  • 手写识别引擎 Tomoe
  • 声纹识别算法验证程序 openVP
  • 手写识别软件 Tegaki
  • 图像识别类库 Tesseract OCR
  • LINUX安装时无法识别硬盘怎么办?
  • Linux各个版本下嫩够用的语音识别系统
  • 如何识别USB
  • 条形码识别工具包 BaToo
  • 文字识别工具 Eye
  • SATA HDD 在LINUX系统中的识别问题
  • 语音识别系统 Simon
  • Vmware下如何识别USB设备?
  • FC8 网卡无法完全识别
  • 模式识别程序 Pattern-lab
  • Linux手势识别工具 Easystroke
  • IP识别工具 Visual IP Trace
  • C++人脸识别库 Libface


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3