H264视频流提取指南

1. 下载rtp_h264_extractor.lua

2. 放置文件

将下载的rtp_h264_extractor.lua文件放置在Wireshark的安装目录下,与init.lua文件位于同一目录。

3. 编辑init.lua文件

init.lua文件中设置disable_lua = false或确保默认有enable_lua = true

4. 添加Lua脚本引用

init.lua文件的结尾添加以下代码:

dofile(DATA_DIR.."rtp_h264_extractor.lua")

5. 抓包后导出H264视频流

抓包完成后,在菜单栏工具下点击Export H264 to file

6. 导出视频流文件

点击Export All将文件导出,默认保存在Wireshark安装目录。

7. 播放视频流

使用H264专用播放器或ffplay播放导出的视频流文件。

  • ffplay 下载地址: [ffplay for Windows](

问题记录

1. 抓包时没有显示H264的数据包

在这里插入图片描述
解决方法: 在菜单栏编辑->首选项->Protocols->H.264中设置payload types为96。

更改后效果:
在这里插入图片描述

2. 文件无法播放

保存的视频流为原始H264码流,VLC无法播放,需要使用专用播放器或ffplay播放。

3. 拉流时视频播放卡顿,保存文件后没有卡顿现象

卡顿一般是丢帧造成的,实时的视频流可以看到明显卡顿,保存成文件后的表现形式一般为跳帧,需要关注时间戳的变化。

4. 丢帧问题分析

  • 驱动丢帧: 表现为浏览器、RTSP播放同一码流时播放都出现卡顿、花屏,一般驱动丢帧会有打印日志。
  • AP丢帧: AP将驱动采集的视频帧缓存后分发到其他模块,部分模块会进行二次缓存,此时对比各模块是否同时丢帧来判断是分发前丢帧还是模块中丢帧。
  • 网络丢帧: 在发送时将视频帧保存到文件,与抓到的包进行对比可确认。
  • 播放器丢帧: 由于网络延时、时间戳错误、NALU内部参数问题可能导致播放器主动丢帧,可打开VLC->工具->消息->详尽程度->调试,分析VLC日志。
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐