Lua 脚本不使用 tshark 创建文件
Lua script doesn't create file using tshark
我有一个 lua 脚本,我在 github.(https://github.com/volvet/h264extractor) 上找到了它。当我从 wireshark 使用它时,它会从 pcap 创建一个转储文件。
但是如果我像这样从 Ubuntu 终端使用:tshark -X lua_script:rtp_h264_extractor.lua -r a.pcap
它不会创建任何转储文件。这个问题有什么解决办法吗?或者应该是这样的?
这是来自 lua 脚本的代码。
local function extract_h264_from_rtp()
local h264_tap = Listener.new("ip", "h264")
local text_window = TextWindow.new("h264 extractor")
local fp = io.open("dump.264", "w+")
local seq_payload_table = { }
local pass = 0
local packet_count = 0
local max_packet_count = 0
local fu_info = nil
local function log(info)
text_window:append(info)
text_window:append("\n")
end
if fp == nil then
log("open dump file fail")
end
local function seq_compare(left, right)
if math.abs(right.key - left.key) < 1000 then
return left.key < right.key
else
return left.key > right.key
end
end
local function dump_single_nal(h264_payload)
fp:write("[=11=][=11=][=11=]")
fp:write(h264_payload:tvb()():raw())
fp:flush()
end
谢谢。
您没有提供完整的 Lua 脚本,所以我下载了它。很明显,这个脚本只是为 Wireshark GUI 编写的,因为它在工具下注册了一个菜单项。换句话说:
register_menu("Extract h264 stream from RTP", extract_h264_from_rtp, MENU_TOOLS_UNSORTED)
脚本根本无法与 tshark
一起使用。事实上,该脚本确实应该以如下内容开头,这样就更清楚它不适用于 tshark
:
if not gui_enabled() then
return
end
我删除了属于 Wireshark GUI 的行,它起作用了。
我有一个 lua 脚本,我在 github.(https://github.com/volvet/h264extractor) 上找到了它。当我从 wireshark 使用它时,它会从 pcap 创建一个转储文件。
但是如果我像这样从 Ubuntu 终端使用:tshark -X lua_script:rtp_h264_extractor.lua -r a.pcap
它不会创建任何转储文件。这个问题有什么解决办法吗?或者应该是这样的?
这是来自 lua 脚本的代码。
local function extract_h264_from_rtp()
local h264_tap = Listener.new("ip", "h264")
local text_window = TextWindow.new("h264 extractor")
local fp = io.open("dump.264", "w+")
local seq_payload_table = { }
local pass = 0
local packet_count = 0
local max_packet_count = 0
local fu_info = nil
local function log(info)
text_window:append(info)
text_window:append("\n")
end
if fp == nil then
log("open dump file fail")
end
local function seq_compare(left, right)
if math.abs(right.key - left.key) < 1000 then
return left.key < right.key
else
return left.key > right.key
end
end
local function dump_single_nal(h264_payload)
fp:write("[=11=][=11=][=11=]")
fp:write(h264_payload:tvb()():raw())
fp:flush()
end
谢谢。
您没有提供完整的 Lua 脚本,所以我下载了它。很明显,这个脚本只是为 Wireshark GUI 编写的,因为它在工具下注册了一个菜单项。换句话说:
register_menu("Extract h264 stream from RTP", extract_h264_from_rtp, MENU_TOOLS_UNSORTED)
脚本根本无法与 tshark
一起使用。事实上,该脚本确实应该以如下内容开头,这样就更清楚它不适用于 tshark
:
if not gui_enabled() then
return
end
我删除了属于 Wireshark GUI 的行,它起作用了。