音视频学习:常见音视频流媒体分析工具安装+使用

本文介绍了音视频学习中常用的工具,如网络包分析软件Wireshark、视频播放工具VLC和FFmpeg,以及解复用和编码细节分析工具VideoEye和Elecard。详细讲解了如何安装和使用这些工具进行流媒体数据分析和问题排查。
摘要由CSDN通过智能技术生成

音视频学习:常见音视频分析工具安装+使用



前言

分析流媒体问题时需要涉及到网络包分析,数据包分析,音视频数据语法分析等,需要用到不同的工具,本文简述一下本人常用的一些工具。


一、wireshark安装和使用

此软件是免费的直接官网安装:https://www.wireshark.org/
使用详细教程如下:https://www.sensorexpert.com.cn/article/210319.html
1、抓包:选择对应网卡,点击开始抓包,相关动作完成后停止抓包。
2、查看抓包文件:
抓包文件打开后实质是打开了一堆二进制文件
1、过滤自己需要的流,例如抓取rtp包,那就需要找到rtp文件传输的某几个rtp包(大量大小和rtp包相似的数据包)
在这里插入图片描述
2、在上图红框需要的位置点击右键,作为过滤器应用,选中,然后左上角的绿色部分就会出现对应的过滤条件,过滤条件还能进行调整,例如本次我在source点击过滤,出现了过滤条件"ip.src == xxx"
但是我想追踪2个ip之间的所有交互,设定为"ip.addr = =xxx"
3、对感兴趣的流细节分析左下角为软件解析到的数据结构,右下角为数据本身的hex文件
在这里插入图片描述
物理层的数据结构并没有对应的二进制文件,其他部分均有。
数据包的类型多种多样,可以分别找对应教程学习,需要注意的点是,有标志位和信息数据,比如000001这个标志可以作为很多数据的起点或者分割,信息位每一个比特都有特殊含义,有些需要解析成比特位分析,有些是直接分析字节数据。
4、wireshark不仅可以分析网络包,还可以分析ps流,ts流,在对数据本身进行分析的时候就需要使用专业的音视频分析工具
在这里插入图片描述

二、视频播放工具

VLC和FFMPeg这2个工具必备,可以作为参考性播放器和流媒体推拉流工具。
VLC:一款开源播放器,可以播放本地各种格式的文件,查看文件信息,播放网络流,http,rtsp,rtmp等都可以,将本地流转换成网络流推送。
FFMPeg:
1、在完成VLC上述功能的前提下,可以分析流的信息,通过配置参数可以打印流的细节信息,例如每一帧的详细信息,每一帧的帧类型,每一帧的pts和dts等。
2、可以用gdb模式调试播放视频,调试播放问题。
3、对视频进行简单的处理,例如裁剪,转换格式,倍速,去除音频或视频等。

三、解复用工具

mp4文件,flv文件,avi等文件按照一定协议将多种复合码流流打包在相应容器里,分析视频那到的先是这类文件,容器内会有视频的各类信息,包括有哪些音视频流,流的格式,时间戳,分辨率等信息,可以先验证其是否出错,常用工具有:
1、MP4reader:打开mp4文件,可以解析各类mp4结构体的相关信息,包括一些dash文件也是mp4文件的分片。
在这里插入图片描述
2、flv格式分析:https://github.com/zymill/flvAnalyser
在这里插入图片描述

3、雷神开发的工具包:VideoEye
在这里插入图片描述

四、编码细节分析工具

雷神开发的工具包:VideoEye,ffprobe也可以用于分析编码细节。
更加强大的工具有Elecard工具包,包括:
1、Elecard Stream Analyzer:可以分析ps流的流信息
在这里插入图片描述
2、StreamEye分析每一帧的宏块信息,视频语法信息,各帧的预测信息,例如dpb。
在这里插入图片描述
eseye_u.exe:更偏向于视频编码信息的分析
pyuv.exe:分析解码后的yuv数据。


总结

`本文罗列了常用工具和常见功能,后续遇到对应问题将补充工具实际起到的作用,和分析过程

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
音视频流媒体开发需要掌握以下几个关键技术: 1. 媒体传输协议:了解常用的媒体传输协议,如HTTP、RTSP、RTP/RTCP等。了解它们的工作原理、特点和适用场景,以便选择合适的协议用于音视频流传输。 2. 媒体编解码:掌握音视频编解码的基本原理和常见的编解码格式,如AAC、MP3、H.264、H.265等。学习使用相关的编解码库和工具,如FFmpeg、GStreamer等。 3. 流媒体服务器:了解流媒体服务器的概念和工作原理,包括流媒体的分发、转码、缓存等功能。学习使用流媒体服务器软件,如Nginx-RTMP、Wowza Streaming Engine等。 4. 实时传输协议(Real-time Transport Protocol, RTP):学习RTP协议的基本概念和工作原理,包括RTP数据包的分组、传输、接收和解析等。了解RTP的相关标准和扩展,如SRTP(Secure RTP)等。 5. 媒体同步与时钟同步:学习音视频的同步原理和方法,包括时间戳的生成、同步机制的设计等。了解时钟同步技术,如NTP(Network Time Protocol)等。 6. 媒体流处理和分发:掌握音视频流的处理和分发技术,包括流的分割、封装、传输和接收等。学习使用相关的库和工具,如FFmpeg、GStreamer等。 7. WebRTC:了解WebRTC(Web Real-Time Communication)技术,它提供了浏览器间实时音视频通信的能力。学习使用WebRTC开发音视频通信应用程序。 8. CDNs(Content Delivery Networks):了解CDN的概念和工作原理,它可以提供高效的音视频内容分发和缓存服务。学习使用CDN服务,如Akamai、Cloudflare等。 以上是音视频流媒体开发中需要掌握的一些关键技术。深入学习和实践这些技术,结合实际项目经验,将有助于提升在音视频流媒体开发方面的技术能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值