当前位置: 首页 > news >正文

我做网站了 圆通广告服务平台

我做网站了 圆通,广告服务平台,百度网站怎么建设,网站关闭流程H264,你不知道的小技巧-腾讯云开发者社区-腾讯云 这篇文章写的非常好 这里仅做几点补充 init.lua内容: -- Set enable_lua to false to disable Lua support. enable_lua trueif not enable_lua thenreturn end-- If false and Wireshark was start…

H264,你不知道的小技巧-腾讯云开发者社区-腾讯云

这篇文章写的非常好

这里仅做几点补充

init.lua内容:

-- Set enable_lua to false to disable Lua support.
enable_lua = trueif not enable_lua thenreturn
end-- If false and Wireshark was started as (setuid) root, then the user
-- will not be able to execute custom Lua scripts from the personal
-- configuration directory, the -Xlua_script command line option or
-- the Lua Evaluate menu option in the GUI.
-- Note: Not checked on Windows. running_superuser is always false.
--run_user_scripts_when_superuser = truedofile(DATA_DIR.."rtp_h264_extractor.lua")

init.lua 放到了这个目录:

C:\Program Files\Wireshark\plugins

rtp_h264_extractor.lua 内容为:


--[[* rtp_h264_extractor.lua* wireshark plugin to extract h264 stream from RTP packets** Copyright (C) 2015 Volvet Zhang <volvet2002@gmail.com>** rtp_h264_extractor is free software; you can redistribute it and/or* modify it under the terms of the GNU Lesser General Public* License as published by the Free Software Foundation; either* version 2.1 of the License, or (at your option) any later version.** rtp_h264_extractor is distributed in the hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU* Lesser General Public License for more details.** You should have received a copy of the GNU Lesser General Public* License along with FFmpeg; if not, write to the Free Software* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA*]]dolocal MAX_JITTER_SIZE = 50local h264_data = Field.new("h264")local rtp_seq = Field.new("rtp.seq")local function extract_h264_from_rtp()local function dump_filter(fd)local fh = "h264";if fd ~= nil and fd ~= "" thenreturn string.format("%s and (%s)", fh, fd)elsereturn fhendendlocal h264_tap = Listener.new("ip", dump_filter(get_filter()))local text_window = TextWindow.new("h264 extractor")local filename = ""local seq_payload_table = { }local pass = 0local packet_count = 0local max_packet_count = 0local fu_info = nillocal pre_seq = 0;local function log(info)text_window:append(info)text_window:append("\n")end-- get_preference is only available since 3.5.0if get_preference thenfilename = get_preference("gui.fileopen.dir") .. "/" .. os.date("video_%Y%m%d-%H%M%S.264")elsefilename = "dump.264"endlog("Dumping H264 stream to " .. filename)local fp = io.open(filename, "wb")if fp == nil thenlog("open dump file fail")endlocal function seq_compare(left, right)if math.abs(right.key - left.key) < 1000 thenreturn left.key < right.keyelsereturn left.key > right.keyendendlocal function dump_single_nal(h264_payload)fp:write("\00\00\00\01")fp:write(h264_payload:tvb()():raw())fp:flush()endlocal function dump_fu_a(fu_info)if  fu_info.complete ==  true thenlog("dump_fu_a")fp:write("\00\00\00\01")fp:write(string.char(fu_info.nal_header))for i, obj in ipairs(fu_info.payloads) dofp:write(obj:tvb()():raw(2))endfp:flush()elselog("Incomplete NAL from FUs, dropped")endendlocal function handle_fu_a(seq, h264_data)fu_indicator = h264_data:get_index(0)fu_header = h264_data:get_index(1)nal_header = bit.bor(bit.band(fu_indicator, 0xe0), bit.band(fu_header, 0x1f))if bit.band(fu_header, 0x80) ~= 0 then-- fu start flag foundfu_info = { }fu_info.payloads = { }fu_info.seq = seqfu_info.complete = truefu_info.nal_header = nal_headertable.insert(fu_info.payloads, h264_data)log("Fu start: seq = "..tostring(seq))returnendif fu_info == nil thenlog("Incomplete FU found: No start flag, dropped")returnendif seq ~= (fu_info.seq + 1)% 65536 thenlog("Incomplete FU found:  fu_info.seq = "..tostring(fu_info.seq)..", input seq = "..tostring(seq))fu_info.complete = false;returnendfu_info.seq = seqtable.insert(fu_info.payloads, h264_data)if bit.band(fu_header, 0x40) ~= 0 then-- fu end flag foundlog("Fu stop: seq = "..tostring(seq))dump_fu_a(fu_info)fu_info = nilendendlocal function handle_stap_a(h264_data)log("start dump stap nals")offset = 1		-- skip nal header of STAP-Arepeatsize = h264_data:tvb()(offset, 2):uint()offset = offset + 2local next_nal_type = bit.band(h264_data:get_index(offset), 0x1f)log("STAP-A has naltype = "..next_nal_type..", size = "..size)fp:write("\00\00\00\01")fp:write(h264_data:tvb()():raw(offset, size))offset = offset + sizeuntil offset >= h264_data:tvb():len()fp:flush()log("finish dump stap nals")endlocal function on_ordered_h264_payload(seq, h264_data)local naltype = bit.band(h264_data:get_index(0), 0x1f)if naltype > 0 and naltype < 24 then-- Single NAL unit packetif fu_info ~= nil thenlog("Incomplete FU found: No start flag, dropped")fu_info = nilenddump_single_nal(h264_data)--log("tap.packet: "..", single nal packet dumpped, naltype = "..tostring(naltype)..", len = "..tostring(packet.len))elseif naltype == 28 then-- FU-Ahandle_fu_a(seq, h264_data)elseif naltype == 24 then-- STAP-Aif fu_info ~= nil thenlog("Incomplete FU found: No start flag, dropped")fu_info = nilendhandle_stap_a(h264_data)elselog("tap.packet: "..", Unsupported nal, naltype = "..tostring(naltype))endendlocal function on_jitter_buffer_output()table.sort(seq_payload_table, seq_compare)if #seq_payload_table > 0 thenlog("on_jitter_buffer_output:  seq = "..tostring(seq_payload_table[1].key)..", payload len = "..tostring(seq_payload_table[1].value:len()))on_ordered_h264_payload(seq_payload_table[1].key, seq_payload_table[1].value)table.remove(seq_payload_table, 1)endendlocal function jitter_buffer_finilize()for i, obj in ipairs(seq_payload_table) dolog("jitter_buffer_finilize:  seq = "..tostring(obj.key)..", payload len = "..tostring(obj.value:len()))on_ordered_h264_payload(obj.key, obj.value)endendlocal function on_h264_rtp_payload(seq, payload)local cur_seq = seq.value--log("on_h264_rtp_payload:  seq = "..tostring(seq.value)..", payload len = "..tostring(payload.len)..",pre_seq = "..pre_seq..",cur_seq = "..cur_seq..",packet_count = "..packet_count)if packet_count == 0 thenpre_seq = cur_seqelseif cur_seq == pre_seq thenpacket_count = packet_count + 1--log("on_h264_rtp_payload, duplicate seq = "..tostring(seq.value)..",packet_count = "..packet_count)returnelsepre_seq = cur_seqendendpacket_count = packet_count + 1table.insert(seq_payload_table, { key = tonumber(seq.value), value = payload.value })--log("on_h264_rtp_payload: table size is "..tostring(#seq_payload_table))if #seq_payload_table > MAX_JITTER_SIZE thenon_jitter_buffer_output()endendfunction h264_tap.packet(pinfo, tvb)local payloadTable = { h264_data() }local seqTable = { rtp_seq() }if (#payloadTable) < (#seqTable) thenlog("ERROR: payloadTable size is "..tostring(#payloadTable)..", seqTable size is "..tostring(#seqTable))returnendif pass == 0 thenfor i, payload in ipairs(payloadTable) domax_packet_count = max_packet_count + 1endelsefor i, payload in ipairs(payloadTable) doon_h264_rtp_payload(seqTable[1], payload)endif packet_count == max_packet_count thenjitter_buffer_finilize()endendendfunction h264_tap.reset()endfunction h264_tap.draw()endlocal function remove()if fp thenfp:close()fp = nilendh264_tap:remove()endlog("Start")text_window:set_atclose(remove)log("phase 1")pass = 0retap_packets()log("phase 2:  max_packet_count = "..tostring(max_packet_count))pass = 1retap_packets()if fp ~= nil thenfp:close()fp = nillog("Video stream written to " .. filename)endlog("End")endregister_menu("Extract h264 stream from RTP", extract_h264_from_rtp, MENU_TOOLS_UNSORTED)
end

该文件放到了这里:

C:\Program Files\Wireshark

此外,Elecard StreamEye Tools 可以到这里下载:

Download video analysis and monitoring applications| Elecard: Video Compression GuruDownload Elecard products for video analysis and monitoring, encoding and decoding video of various formats.icon-default.png?t=N7T8https://www.elecard.com/software


文章转载自:
http://dinncominifloppy.tpps.cn
http://dinncocentre.tpps.cn
http://dinncoobelisk.tpps.cn
http://dinncovibroscope.tpps.cn
http://dinncoburst.tpps.cn
http://dinncotemplelike.tpps.cn
http://dinncocourlan.tpps.cn
http://dinncofishy.tpps.cn
http://dinncopontoon.tpps.cn
http://dinncoinstauration.tpps.cn
http://dinncofirst.tpps.cn
http://dinncohemocoele.tpps.cn
http://dinncomilkman.tpps.cn
http://dinncohas.tpps.cn
http://dinncoinflated.tpps.cn
http://dinncoinky.tpps.cn
http://dinncocuttage.tpps.cn
http://dinncoemotionally.tpps.cn
http://dinncotriboluminescence.tpps.cn
http://dinncodevoutly.tpps.cn
http://dinncoinhale.tpps.cn
http://dinncobecquerel.tpps.cn
http://dinncodecant.tpps.cn
http://dinncometage.tpps.cn
http://dinncoavirulence.tpps.cn
http://dinncodisyllable.tpps.cn
http://dinncodrudge.tpps.cn
http://dinncopulik.tpps.cn
http://dinncoplasm.tpps.cn
http://dinncoquarterly.tpps.cn
http://dinncoprix.tpps.cn
http://dinncoutilitarianism.tpps.cn
http://dinncocloseout.tpps.cn
http://dinnconordstrandite.tpps.cn
http://dinncoknobby.tpps.cn
http://dinncodedicatee.tpps.cn
http://dinncoorb.tpps.cn
http://dinncohypopsychosis.tpps.cn
http://dinncoecheveria.tpps.cn
http://dinncodugout.tpps.cn
http://dinncokarzy.tpps.cn
http://dinncoepineurium.tpps.cn
http://dinncotammerkoski.tpps.cn
http://dinncoorcinol.tpps.cn
http://dinncoflora.tpps.cn
http://dinncodeoxidize.tpps.cn
http://dinncobitingly.tpps.cn
http://dinncojeopardise.tpps.cn
http://dinncoganoblast.tpps.cn
http://dinncoelectrostriction.tpps.cn
http://dinncokodachrome.tpps.cn
http://dinncoparador.tpps.cn
http://dinncodeduce.tpps.cn
http://dinncomedicaster.tpps.cn
http://dinncosonography.tpps.cn
http://dinncounderboss.tpps.cn
http://dinncohaemostasia.tpps.cn
http://dinncobirch.tpps.cn
http://dinncoeven.tpps.cn
http://dinncobuirdly.tpps.cn
http://dinncogorgonia.tpps.cn
http://dinncosnip.tpps.cn
http://dinncocorallite.tpps.cn
http://dinncosaltillo.tpps.cn
http://dinncosiphonate.tpps.cn
http://dinncophotoproton.tpps.cn
http://dinncopleb.tpps.cn
http://dinncowayless.tpps.cn
http://dinncoorthopedics.tpps.cn
http://dinncosanty.tpps.cn
http://dinncoremelting.tpps.cn
http://dinncocarding.tpps.cn
http://dinncochechia.tpps.cn
http://dinncosynchromesh.tpps.cn
http://dinncomissent.tpps.cn
http://dinncomeninx.tpps.cn
http://dinncowelldoer.tpps.cn
http://dinncosubovate.tpps.cn
http://dinncomsj.tpps.cn
http://dinncoinshallah.tpps.cn
http://dinncooecd.tpps.cn
http://dinncocoeducation.tpps.cn
http://dinncoaldis.tpps.cn
http://dinncoantimagnetic.tpps.cn
http://dinncoelective.tpps.cn
http://dinncosiphonostele.tpps.cn
http://dinncocompetitory.tpps.cn
http://dinncocavalvy.tpps.cn
http://dinncoliepaja.tpps.cn
http://dinncodomineer.tpps.cn
http://dinncoblock.tpps.cn
http://dinncoheathenise.tpps.cn
http://dinncoalloy.tpps.cn
http://dinncocrawler.tpps.cn
http://dinncoconsummative.tpps.cn
http://dinncoletterpress.tpps.cn
http://dinncocorsage.tpps.cn
http://dinncotangible.tpps.cn
http://dinncoisoprene.tpps.cn
http://dinncoorthognathous.tpps.cn
http://www.dinnco.com/news/104515.html

相关文章:

  • 南川网站制作网络优化师是什么工作
  • 个人网站限制引流最好的推广方法
  • 有合作社做网站得不seo关键词优化服务
  • 买域名做网站表白整站seo排名外包
  • 建设网站有几种渠道网址创建
  • 个人网站做哪种能赚钱游戏代理平台有哪些
  • 做视频周边的网站搜索引擎排名优化
  • 如何建设视频网站网络营销案例实例
  • 大邑县建设局网站网站搭建费用
  • 做新的网站seo黄页网络的推广
  • 网站后台修改不了浏览广告赚钱的平台
  • 丛台专业做网站温州seo招聘
  • 在家帮别人做网站赚钱吗全网营销公司
  • 网站花瓣飘落的效果怎么做厦门seo网络推广
  • 简单炫酷的网站seo优化网站排名
  • 做编程的网站一个月多少钱新闻20字摘抄大全
  • 网站建设营销方案定制seo排名优化价格
  • 陕西省城乡建设学校网站网站优化排名优化
  • 美团这个网站多少钱做的seo网站快速排名外包
  • 寻找项目做的网站seo及网络推广招聘
  • 区块链外包开发天津关键词优化专家
  • 温州的高端设计公司淘宝seo排名优化软件
  • 西安网站建设成功建设易思企业网站管理系统
  • 武汉做网站公司方讯临沂seo网站管理
  • 北京网站设计制作关键词优化河南做网站优化
  • 新手做网站百度网盘客服电话人工服务
  • o2o网站开发方案天津seo公司
  • 网站建设scyiyou自动外链发布工具
  • 网站建设 英文怎么说网站建设公司好
  • php网站开发业务b站推广平台