<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      從wireshark數據中分析rtmp協議,并提取出H264視頻流

      我寫的小工具 rtmp_parse.exe
      使用用法如先介紹下:

      -sps  [文件路徑] 解析 sps 數據 文件當中的內容就是純方本的hexstring: 如 42 E0 33 8D 68 05 00 5B A1 00 00 03 00 ……
      -pps  [文件路徑] 解析 pps 數據 文件格式同上
      -rtmp [文件路徑] 解析并保存h264視頻流數據(從wireshark抓出來的hexstring)

      下載地址:

      鏈接:https://pan.baidu.com/s/1RhRKoNqTPHLj4mrpryunDQ 密碼:v7lb

      解壓密碼:rtmp

      下載包當中包含了我抓取的wireshark的兩個例子。

       


       

      原理如下:

      1. 利用wireshark抓取rtmp流數據, 分析到rtmp流后,寫入過濾條件,如 tcp.stream eq 90

        image
      2. 導出tcp流

        image

      3. 保存16進制的數據為純文本格式

        image
        一定要選擇 Hex轉儲,然后點擊 “Sava as”
        注意,這個流開始的第一個字節一定是03,才是正確的。
        至此,我們有了可以用于分析的rtmp流的數據。

       


       

      wireshark保存出來的文件格式規則是

      1. client發給server端的數據是,每一行頂到頭寫的
      2. server發給client端的數據是,每一行開始空4個空格

      我是基于這點來判斷是誰發給誰的數據,從而進行分析的。

       


       

      rtmp協議:

          1. 握手,C0,C1, C2 <-> s0,s1,s2。當客戶端發送C2,就表示握手已經完成了
          2. 客戶端發送 connect命令, 如下數據

            image

          3. 從這兒之后,就可以分析服務器端發送過來的視頻數據,首先是sps和pps

            image

      07 00 00 00 00 00 2C 09 01 00 00 00 17
      00
      00 00 00 01  => nal頭
      42 E0 33 FF E1 00 18 27 42 E0 33 8D 68 05 00 5B => sps
      A1 00 00 03 00 01 00 00 03 00 3C 0F 10 7A 80
      01
      00 04  => pps len
      28 CE 32 48 => pps

      解析 sps 數據,我得到詳細的結構數據如下:
      profile_idc: 66
      constraint_set0_flag: 1
      constraint_set1_flag: 1
      constraint_set2_flag: 1
      constraint_set3_flag: 0
      constraint_set4_flag: 0
      constraint_set5_flag: 0
      reserved_zero_2bits: 0
      level_idc: 51
      seq_parameter_set_id: 0
      chroma_format_idc: 1
      residual_colour_transform_flag: 0
      bit_depth_luma_minus8: 0
      bit_depth_chroma_minus8: 0
      qpprime_y_zero_transform_bypass_flag: 0
      seq_scaling_matrix_present_flag: 0
      log2_max_frame_num_minus4: 12
      pic_order_cnt_type: 2
      log2_max_pic_order_cnt_lsb_minus4: 0
      delta_pic_order_always_zero_flag: 0
      offset_for_non_ref_pic: 0
      offset_for_top_to_bottom_field: 0
      num_ref_frames_in_pic_order_cnt_cycle: 0
      num_ref_frames: 1
      gaps_in_frame_num_value_allowed_flag: 0
      pic_width_in_mbs_minus1: 79
      pic_height_in_map_units_minus1: 44
      frame_mbs_only_flag: 1
      mb_adaptive_frame_field_flag: 0
      direct_8x8_inference_flag: 1
      frame_cropping_flag: 0
      frame_crop_left_offset: 0
      frame_crop_right_offset: 0
      frame_crop_top_offset: 0
      frame_crop_bottom_offset: 0
      vui_parameters_present_flag: 1
      vui.aspect_ratio_info_present_flag: 0
      vui.aspect_ratio_idc: 0
      vui.sar_width: 0
      vui.sar_height: 0
      vui.overscan_info_present_flag: 0
      vui.overscan_appropriate_flag: 0
      vui.video_signal_type_present_flag: 0
      vui.video_format: 0
      vui.video_full_range_flag: 0
      vui.colour_description_present_flag: 0
      vui.colour_primaries: 0
      vui.transfer_characteristics: 0
      vui.matrix_coefficients: 0
      vui.chroma_loc_info_present_flag: 0
      vui.chroma_sample_loc_type_top_field: 0
      vui.chroma_sample_loc_type_bottom_field: 0
      vui.timing_info_present_flag: 1
      vui.num_units_in_tick: 768
      vui.time_scale: 16777219
      vui.fixed_frame_rate_flag: 0
      vui.nal_hrd_parameters_present_flag: 0
      vui.vcl_hrd_parameters_present_flag: 0
      vui.low_delay_hrd_flag: 0
      vui.pic_struct_present_flag: 0
      vui.bitstream_restriction_flag: 0
      vui.motion_vectors_over_pic_boundaries_flag: 0
      vui.max_bytes_per_pic_denom: 0
      vui.max_bits_per_mb_denom: 0
      vui.log2_max_mv_length_horizontal: 0
      vui.log2_max_mv_length_vertical: 0
      vui.num_reorder_frames: 0
      vui.max_dec_frame_buffering: 0
      hrd_nal.cpb_cnt_minus1: 0
      hrd_nal.bit_rate_scale: 0
      hrd_nal.cpb_size_scale: 0
      hrd_nal.initial_cpb_removal_delay_length_minus1: 0
      hrd_nal.cpb_removal_delay_length_minus1: 0
      hrd_nal.dpb_output_delay_length_minus1: 0
      hrd_nal.time_offset_length: 0
      hrd_vcl.cpb_cnt_minus1: 0
      hrd_vcl.bit_rate_scale: 0
      hrd_vcl.cpb_size_scale: 0
      hrd_vcl.initial_cpb_removal_delay_length_minus1: 0
      hrd_vcl.cpb_removal_delay_length_minus1: 0
      hrd_vcl.dpb_output_delay_length_minus1: 0
      hrd_vcl.time_offset_length: 0

      解析 pps 得到如下結構數據:
      pic_parameter_set_id: 4
      seq_parameter_set_id: 11
      entropy_coding_mode_flag: 1
      pic_order_present_flag: 1
      num_slice_groups_minus1: 0
      slice_group_map_type: 0
      slice_group_change_direction_flag: 0
      slice_group_change_rate_minus1: 0
      pic_size_in_map_units_minus1: 0
      num_ref_idx_l0_active_minus1: 11
      num_ref_idx_l1_active_minus1: 0
      weighted_pred_flag: 0
      weighted_bipred_idc: 1
      pic_init_qp_minus26: 2
      pic_init_qs_minus26: 0
      chroma_qp_index_offset: 0
      deblocking_filter_control_present_flag: 0
      constrained_intra_pred_flag: 0
      redundant_pic_cnt_present_flag: 0
      _more_rbsp_data_present: 0
      transform_8x8_mode_flag: 0
      pic_scaling_matrix_present_flag: 0
      second_chroma_qp_index_offset: 0

          1. 導出視頻數據,下圖就是I幀的數據

            image
            圖中,09即表示是視頻數據

      /*      RTMP_PACKET_TYPE_...                0x00 */
      #define RTMP_PACKET_TYPE_CHUNK_SIZE         0x01
      /*      RTMP_PACKET_TYPE_...                0x02 */
      #define RTMP_PACKET_TYPE_BYTES_READ_REPORT  0x03
      #define RTMP_PACKET_TYPE_CONTROL            0x04
      #define RTMP_PACKET_TYPE_SERVER_BW          0x05
      #define RTMP_PACKET_TYPE_CLIENT_BW          0x06
      /*      RTMP_PACKET_TYPE_...                0x07 */
      #define RTMP_PACKET_TYPE_AUDIO              0x08
      #define RTMP_PACKET_TYPE_VIDEO              0x09
      /*      RTMP_PACKET_TYPE_...                0x0A */
      /*      RTMP_PACKET_TYPE_...                0x0B */
      /*      RTMP_PACKET_TYPE_...                0x0C */
      /*      RTMP_PACKET_TYPE_...                0x0D */
      /*      RTMP_PACKET_TYPE_...                0x0E */
      #define RTMP_PACKET_TYPE_FLEX_STREAM_SEND   0x0F
      #define RTMP_PACKET_TYPE_FLEX_SHARED_OBJECT 0x10
      #define RTMP_PACKET_TYPE_FLEX_MESSAGE       0x11
      #define RTMP_PACKET_TYPE_INFO               0x12
      #define RTMP_PACKET_TYPE_SHARED_OBJECT      0x13
      #define RTMP_PACKET_TYPE_INVOKE             0x14
      /*      RTMP_PACKET_TYPE_...                0x15 */
      #define RTMP_PACKET_TYPE_FLASH_VIDEO        0x16

       



      最后看一下,從wireshark當中導出的視頻截圖:

      image

       

       

             

       
         

       

       

       

      Technorati Tags: rtmp,sps,pps,wireshark,h264
      posted @ 2017-02-10 23:25  Russinovich`s Blog  閱讀(16089)  評論(16)    收藏  舉報
      主站蜘蛛池模板: 深夜av免费在线观看| 中日韩黄色基地一二三区| 精品国产免费一区二区三区香蕉| 内射极品少妇xxxxxhd| 五月天丁香婷婷亚洲欧洲国产| 亚洲天堂一区二区成人在线| 91中文字幕一区在线| 九九久久自然熟的香蕉图片| 国产99在线 | 欧美| 天堂va亚洲va欧美va国产| 少妇人妻偷人精品系列| 亚洲精品中文综合第一页| 免费福利视频一区二区三区高清| 欧美野外伦姧在线观看| 国产片一区二区三区视频| 国产亚洲精品视频一二区| 99在线小视频| 人妻系列中文字幕精品| 日韩一区二区三区精品区| 国产成人综合在线女婷五月99播放| 亚洲国产中文字幕在线视频综合| 国产成人99亚洲综合精品| 国产最新AV在线播放不卡| 一本久道中文无码字幕av| 国产亚洲精品视频一二区| 377p欧洲日本亚洲大胆| 内射一区二区三区四区| 日韩有码国产精品一区| 国产口爆吞精在线视频2020版| 成人一区二区人妻不卡视频| 国产精品中文字幕视频| 成人乱人伦精品小说| 国产短视频精品一区二区| 亚洲一级片一区二区三区| 亚洲综合无码一区二区| 神马久久亚洲一区 二区| 日本高清视频网站www| 国产精品三级在线观看无码| av无码久久久久不卡网站蜜桃| 亚洲欧美牲交| 天美麻花果冻视频大全英文版|