从wireshark中获取H264码流详解_海2100的博客-程序员秘密

技术标签: 音视频  

1、首先从https://github.com/volvet/h264extractor打包下载


 

2、读README.md 全文如下:

# h264extractor
wireshark plugin to extract h264 stream from rtp packets, support Single NAL Unit Mode(RTP Packetization Mode 0),  FU-A and STAP-A.  In addition, opus stream is supported as well.


# How to use h264extractor
* Copy rtp_h264_extractor.lua to the directory where wireshark was installed
* edit init.lua,  make sure "disable_lua = false" and add "dofile(DATA_DIR.."rtp_h264_extractor.lua")"
* when open pcap file in wireshark,  decode as RTP and configure the H264 dynamic payload types.  
* Menu - Tools - Extract h264 stream from RTP


# How to use opus extractor
* Copy rtp_opus_extractor.lua to the directory where wireshark was installed
* edit init.lua,  make sure "disable_lua = false" and add "dofile(DATA_DIR.."rtp_opus_extractor.lua")"
* when open pcap file in wireshark,  decode as RTP.  
* Menu - Tools - Extract opus stream from RTP


# TODO
* H265 extractor


# Reference
* https://wiki.wireshark.org/Lua
* https://tools.ietf.org/html/rfc6184
* https://tools.ietf.org/html/rfc7587
* https://tools.ietf.org/html/rfc7798


其中H264部分的大意为:

编辑安装目录下的init.lua文件(如WIN10系统可能编辑不了,需要在其它盘下编辑好后,复制过去),需确认

disable_lua = false,在文件最后"dofile(DATA_DIR.."rtp_h264_extractor.lua")"。

把rtp_h264_extractor.lua复制到安装目录下,打开wireshark在工具菜单多了一项:Extract h264 stream from RTP,

如下图所示:

打开wireshark, 在解码为当前值选择RTP。

查看rtp包的payload type(如96),那么在wireshark工具栏选择编辑-首选项->protocols->H264,

把H264 dynamic payload types设成96。


设置完以上,执行工具-Extract h264 stream from RTP,


执行后,会生成dump.264,一般会放在与码流文件同一个路径下。


参考:

http://blog.csdn.net/volvetandanny/article/details/47087641

https://github.com/volvet/h264extractor 

https://wiki.wireshark.org/Lua

http://www.lua.org/ 


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lbc2100/article/details/78814749

智能推荐

C++状态机框架实现_三体问题的博客-程序员秘密

状态机我们大家都知道,有一个专门的设计模式状态机模式,类图大概如下图:不过如果按照下面图来实现的状态机,基本来说非常难用,没有实用性,只能作为教科书的产品。今天我们要实现的是一种通用状态机,可以Send事件,每一个状态可以响应自己注册的事件,同时也可以通过自身或者事件来改变状态机的状态 代码地址:https://github.com/9435202/StateAPI首...

超越前端Beyond Frontend — 吉密斯/gMIS 增加点选/PickUp概览功能_前端 pickup_Xenxin的博客-程序员秘密

“….总是拿着微不足道的成就来骗自己….,总是靠一点酒精的麻醉才能够睡去….” — 台湾歌手郑智化《水手》歌词.超越前端Beyond Frontend — 吉密斯/gMIS 增加点击勾选(点选)概览等功能侧记。一直以来,gMIS吉密斯定位于管理操作后台、生产支撑、运营管控系统,主要面向于生产运营、管理操作人员,鲜有面向终端用户的机会,所以,设计考虑和实现权衡时,多是可用性,少有易用性...

controller、service、dao调用关系_controller调用service_不会编码的灯泡的博客-程序员秘密

初做java项目前,了解一下各package下类的调用关系还是很有必要的1:controller是为前端提供的访问入口,不用关心具体的业务逻辑。具体的业务逻辑放在了serviceImpl里,controller只需调用它封装好的方法即可。你可能会问:直接@Resource一个serviceImpl类不行吗,为什么要加个service。当然可以这么做,但用接口可以重写方法,更利于扩展。一般要求要有service的,咱不是要面向接口的编程嘛,最好还是加上吧。2:service提供业务逻辑要用到的..

斯坦福大学Andrew Ng教授主讲的《机器学习》公开课观后感_Arrow的博客-程序员秘密

近日,在网易公开课视频网站上看完了《机器学习》课程视频,现做个学后感,也叫观后感吧。  学习时间 从2013年7月26日星期五开始,在网易公开课视频网站上,观看由斯坦福大学Andrew Ng教授主讲的计算机系课程(编号CS229)《机器学习》(网址http://v.163.com/special/opencourse/machinelearning.html)(注:最早是在新浪公开课上

terminate called after throwing an instance of ‘std::runtime_error‘ what(): locale::facet::_S_cre_llhm的博客-程序员秘密

在运行程序时出错:terminate called after throwing an instance of 'std::runtime_error' what(): locale::facet::_S_create_c_locale name not valid解决方法export LC_ALL="C"export LC_ALL=C这一句的做用是为了去除全部本地化的设置,让命令能正确执行浅谈Linux的locale,LC_ALL和LANG (360doc.com)...

nlp数据增强+SimBERTv2 +谷歌翻译回译_程序员uu的博客-程序员秘密

NLP Chinese Data Augmentation 一键中文数据增强工具使用:pip install nlpcda开源不易,欢迎star????pypi:nlpcda · PyPI介绍一键中文数据增强工具,支持:1.随机实体替换 2.近义词 3.近义近音字替换 4.随机字删除(内部细节:数字时间日期片段,内容不会删) 5.新增:NER类BIO数据增强 6.新增随机置换邻近的字:研表究明,汉字序顺并不定一影响文字的阅读理解<<是乱序的 7.百度中英翻译.

随便推点

Red Hat Enterprise Linux 5——tftp、NFS、Samba服务器配置_red hat 5 samba的镜像文件_fzubbsc之雕虫小技的博客-程序员秘密

在学习嵌入式开发时,常常要在linux系统和开发板,或者liunx系统和window系统之间进行文件传输,因此在linux系统中熟练使用tftp、nfs、samba服务器显得很重要。以下是基于RedHat Linux 5系统下的配置。一、tftp服务器配置二、NFS服务器配置三、Samba服务器配置

小团队妙技巧:海外手游市场推广心得分享_手游出海巴西_love_hot_girl的博客-程序员秘密

小团队妙技巧:海外手游市场推广心得分享2014-02-27 08:03 作者: 转载出处:手有对对碰 推荐人:天门1  手游生力军里,创业团队拥有无限的热情和天马行空的想象力,给行业带来一个又一个惊喜,但目前国内团队多、产品井喷,行业恶意刷榜、抄袭山寨、端游化推广让部分创业团队生存空间被严重挤压。越来越多的中小团队在越南、加拿大、巴西等海外市场寻

在基于对话框的应用中执行空闲状态处理(比如用ON_UPDATE_COMMAND_UI更新控件)_蒋晟的博客-程序员秘密

June 1995,Microsoft System Journal Paul DiLascia 是一个自由软件顾问,专长是训练和软件开发(C++ and Windows).他是Windows ++: Writing Reusable Code in C++ (Addison-Wesley, 1992)的作者.问:我的问题是OnIdle在通常的文档/视图程序中可以工作,但是

okhttp3.OkHttpClient Get带头部Headers,带参数请求_okhttpclient 设置header_我写的代码会爆炸的博客-程序员秘密

package com.service.impl;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import com.aliba...

js JavaScript vue 时间戳 转换 日期 YYYY-MM-DD hh:mm:ss 简洁写法_chestnut栗子的博客-程序员秘密

两种方法方法一使用两个api toLocaleDateString() 和 toTimeString() 加 正则表达式,简洁写法,推荐!还可以更改为以 点(.) 连接 —— 正则表达式代码let newDate = new Date();this.date = newDate.toLocaleDateString().replace(/\//g, "-") + " " + newDate.toTimeString().substr(0, 8);结果缺点月份不能是 03的形式

嵌入式linux头文件路径_嵌入式设备头文件在哪_James alan的博客-程序员秘密

#include 是在linux-2.6.29/include/linux下面寻找源文件。#include 是在linux-2.6.29/arch/arm/include/asm下面寻找源文件。#include 是在linux-2.6.29/arch/arm/mach-s3c2410/include/mach下面寻找源文件。 #include 在linux-2.6.31

推荐文章

热门文章

相关标签