Lua скрипт не создает файл с помощью tshark - PullRequest
1 голос
/ 14 июля 2020

У меня есть сценарий lua, который я нашел на github. (https://github.com/volvet/h264extractor) Когда я использую его из wirehark, он создает файл дампа из 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("\00\00\00\01")
        fp:write(h264_payload:tvb()():raw())
        fp:flush()
    end

Спасибо.

Ответы [ 2 ]

0 голосов
/ 16 августа 2020

Я удалил строки, принадлежащие Wireshark GUI, и это сработало.

0 голосов
/ 16 июля 2020

Вы не предоставили полный сценарий 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
...