LINUX.ORG.RU

Подскажите по дампу что за видео формат?


0

1

реверсинжинирю тут протокол общения видеосервера EVS-100, медиапоток
в файл сливать уже научился. Как бы понять, что внутри видеопотока за
формат, после отправки на контрольный порт видеосервера пароля он
начинает лить видеопоток, но у меня подозрение что первые байты - это
чисто его, служебные. mplayer-ом файл с дампом слитого с сети
открывается, хоть и с руганью но воспроизводит

Playing stream.dmp.
Seek failed
libavformat file format detected.
[mpeg4 @ 0x2ef41d0] only rectangular vol supported
Marker bit missing before time_increment_resolution
Marker bit missing before fixed_vop_rate
[mpeg4 @ 0x2ef41d0] N-bit not supported
[mpeg4 @ 0x2ef41d0] quant precision 12
[mpeg4 @ 0x2ef41d0] Error, header damaged or not MPEG4 header (f_code=0)
Last message repeated 2 times
[m4v @ 0x2ef3190] Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: video (mpeg4), -vid 0
VIDEO: [MP4V] 720x576 0bpp 17508.000 fps 0.0 kbps ( 0.0 kbyte/s)
[NULL @ 0x2ef41d0] Error, header damaged or not MPEG4 header (f_code=0)
Xlib: extension «XFree86-VidModeExtension» missing on display «192.168.0.102:0.0».
Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
[vdpau] Error when calling vdp_device_create_x11: 1
Xlib: extension «XVideo» missing on display «192.168.0.102:0.0».
[VO_XV] Sorry, Xv not supported by this X11 version/driver
[VO_XV] ******** Try with -vo x11 or -vo sdl *********
[gl] no GLX support present
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
==========================================================================
Audio: no sound
Starting playback...
Movie-Aspect is 1.25:1 - prescaling to correct movie aspect.
VO: [x11] 720x576 => 720x576 Planar YV12
Shared memory not supported
Reverting to normal Xlib
[swscaler @ 0xc00d80]using unscaled yuv420p -> bgra special converter
No pts value from demuxer to use for frame!
pts after filters MISSING
No pts value from demuxer to use for frame!,?% 0 0
pts after filters MISSING
No pts value from demuxer to use for frame!,?% 0 0
pts after filters MISSING
No pts value from demuxer to use for frame!,?% 0 0




дамп потока в начале содержит следующие данные -
stream.dmp


0x00000000 0%
00000000 A7 4F 80 E6 │ 00 00 66 90 │ 19 00 02 40 │ 02 D0 07 DB │ 0B 14 00 01 │ 29 3B 81 00 O ..f ...@. . ....); .
00000018 00 01 00 00 │ 4E C8 5A E7 │ 00 0E 70 FC │ 45 56 53 31 │ 30 30 00 00 │ 00 00 00 00 ....N Z ..p EVS100......
00000030 00 00 00 00 │ 00 00 00 01 │ 00 00 00 01 │ 20 08 C8 88 │ BA 98 51 68 │ 44 81 41 83 ............ .Ȉ QhD A
00000048 FF FF FF FF │ FF FF FF FF │ FF FF FF FF │ FF 00 00 01 │ B6 18 CA 18 │ 51 98 78 6D ... . .Q xm
00000060 EC 46 B3 A6 │ 5C 9C 39 61 │ D1 C4 D2 3C │ F8 0E 19 91 │ C9 E9 71 39 │ 78 8E 38 C4 F \ 9a < .. q9x 8
00000078 44 A0 38 EC │ 83 88 23 8A │ A9 84 06 A4 │ 30 70 BD 18 │ C4 86 B8 0E │ 19 11 54 9D D 8새 # . 0p .Ć ...T
00000090 38 12 55 79 │ 07 A6 FF FC │ 5E F4 A9 50 │ 3D 07 FF EB │ BD 29 0F 13 │ C0 31 5E 5F 8.Uy. ^ P=. ).. 1^_
000000A8 EC E1 E4 5C │ 96 20 01 C0 │ BC 2B 80 C1 │ E5 D8 0E 09 │ CB 5B 7C E1 │ 73 14 40 7D \ . + .. [| s.@}
000000C0 F4 B3 BD 3E │ 8F 85 3E 87 │ D0 22 17 58 │ 58 0F 47 00 │ 1B 85 BB 0B │ 0E A0 2D 5A > > ".XX.G.. .. -Z
000000D8 E9 21 E6 11 │ 73 CD B3 8F │ 16 71 0D B6 │ C9 59 DE 6D │ B7 AB 9B 6D │ D8 26 C5 11 ! .sͳ .q. Y m m & .
000000F0 B6 DF 33 6D │ B9 4C DB 6F │ C8 54 DB 6E │ 8D 34 76 69 │ 91 63 2D B3 │ B0 EA 91 B3 3m L o T n 4vi c- ꑳ
00000108 63 E1 F9 72 │ 1C 58 50 54 │ 46 1E 83 08 │ 8C EA E8 8A │ D0 82 C4 9C │ 51 FF 71 6A c r.XPTF. . Ђ Ĝ Q qj
00000120 89 E3 D1 FA │ AA AB 4B 46 │ 08 79 46 44 │ 4D 68 A8 C3 │ EC C2 90 44 │ 68 19 00 2B KF.yFDMh . Dh..+
00000138 28 72 D7 20 │ 45 40 AD 69 │ 6D 91 96 90 │ E8 15 E1 44 │ 8B 83 8E 8C │ 42 10 8F 15 (r E@ im . D B. .
00000150 83 2C DD E2 │ B8 0C 2F 84 │ 94 84 4C 5F │ 70 4E 87 DB │ 8C DF 68 75 │ A5 8B F6 E2 , ./ L_pN ی hu
00000168 D3 A5 32 84 │ D3 57 0E E0 │ CE 2E 88 6C │ 81 02 0E 90 │ AB AA 98 FD │ EE FB 2E C4 ӥ 2 W. . l .. .
00000180 57 8B BA B8 │ DF 96 80 AD │ C0 54 D5 E4 │ 34 89 71 3A │ 1D 33 92 91 │ B6 6D B2 EB W ߖ T 4 q:.3 m
00000198 C2 A0 F6 2E │ 8D 19 5A 32 │ 9E 85 63 94 │ A3 E1 95 07 │ 9F 80 0C A0 │ E1 79 B2 81   . .Z2 c . . y
000001B0 60 F3 9D 85 │ 9B 14 4A 32 │ E7 46 6E 10 │ 7F 5A BC 69 │ 5C 51 B5 0F │ 2A 81 97 F8 `. .J2 Fn..Z i\Q .*
000001C8 7B A7 8E B9 │ 61 13 63 9D │ F5 0B AC B4 │ 1C 33 23 1F │ 04 31 F5 63 │ 2B 73 2D 68 { a.c . .3#..1 c+s-h
000001E0 15 12 ED 80 │ 4A 2E 13 06 │ 3B 4E 8D F4 │ 95 C4 E2 E8 │ DC DE D3 A7 │ 59 01 8F A6 .. J...;N ӧ Y.
000001F8 4B 1F F8 6C │ 2A 57 BE 7D │ B5 DD 4F 16 │ E8 2B 35 C7 │ FA 5A E7 7D │ AF 67 D2 7D K. l*W } O. +5 Z } g }
00000210 4A 3E C8 85 │ 6A 27 48 8F │ 36 16 23 AA │ 34 AE 09 D4 │ 31 29 E4 46 │ 46 A5 2B D6 J>ȅ j'H 6.# 4 . 1) FF + ֱ
00000228 B1 0B A8 FC │ C4 E9 E3 F1 │ 57 3B CF A6 │ EC EB B2 D8 │ 38 17 7F D8 │ 7A CA 51 0F . W;Ϧ 8.. z Q.
00000240 67 92 EA 4F │ B3 F5 1E F9 │ C8 81 FA 6B │ 99 BE 1F D5 │ CD 77 5A F8 │ 54 A5 95 D6 g O . ȁ k . wZ T ֊
00000258 8A 37 2F 61 │ E3 64 79 B2 │ 40 C4 56 37 │ 3F 4F C5 EE │ CE 9B 66 11 │ 9B 6D AA E6 7/a dy @ V7?O Λ f. m
00000270 DB 6C B9 B6 │ DA DC DB 6D │ A9 9B 6D DC │ 89 4D B6 D8 │ FB 91 B6 DA │ A1 F8 DB 6E l m m܉ M ڡ n
00000288 AE 6D B7 66 │ 6D B6 BE 6D │ B7 73 77 24 │ 4F 39 4C 32 │ C1 A6 7A 26 │ 5C A6 0D 3E m fm m sw$O9L2 z&\ .>
000002A0 82 87 26 9B │ 2A 85 95 04 │ CE 57 C7 3A │ BD C2 40 90 │ 91 12 18 02 │ 3B 45 11 CF & * . W : @ ...;E.ϖ
000002B8 96 87 08 7A │ 0E 11 B9 10 │ 62 22 DF 6B │ 98 47 30 94 │ 29 52 25 D3 │ FA 33 22 C6 .z.. .b" k G0 )R% 3"Ƽ
000002D0 BC 38 3A C1 │ 20 86 F9 44 │ 3B 16 E9 DB │ 1A 0D B7 21 │ 4D B6 CB 21 │ B9 B6 D9 85 8: D;. .. !M ! م
000002E8 99 B6 DC 8E │ CD B6 CC B9 │ B6 D9 5C 6D │ B7 57 36 DB │ D9 CD B6 D5 │ FB 90 DE 6F . Ͷ ̹ \m W6 Ͷ o
1Помощь 2Правка 3Выход 4Ascii 5Перейти 6Сохранить 7Поиск 8Исходный 9Формат 10Выход



как понять, какие байты в начале лишние и что реально надо на диск дампить?

★★

Ответ на: комментарий от adriano32

да в том то и дело что понимаю что там mpeg4, а с какого байта начинается- понять не могу, в голове первые несколько байт, так подозреваю - служебная информация видеосервера которую надо отбросить, а поток начинать писать на диск с того байта в котором начинается заголовок видеопотока

hooj ★★ ()
Ответ на: комментарий от hooj

а этот кусок не слишком ли мал? если его запустить проигрывать, что-то будет на экране? А то привёл невесть что, а дальше самый цвет был.

А вообще парсить по дампу все fourcc как в BE так и в LE.

adriano32 ★★★ ()

формат очевидно - MPEG по сигнатуре 00 00 00 B6, следующей за заполнителем FF

как понять, какие байты в начале лишние и что реально надо на диск дампить?

на лету найти границу кадров, поймать первый опорный кадр, записать заголовок и начиная с опорного кадра записывать - как-то так примерно.

железяка поддерживает ONVIF ? хотя-бы частично :) И какой смысл мучить протокол ради одного стандартного потока ?? («mplayer-ом файл с дампом слитого с сети открывается, хоть и с руганью но воспроизводит»).

здаётся мне, что vlc должен открывать поток «на-лету» и нормально воспроизводить.

MKuznetsov ★★★★★ ()
Ответ на: комментарий от MKuznetsov

спасибо) в общем обрезал первые 57 байт - mplayer показывает, обрезал больше - перестал показывать.
В нете поискал - согласно ISO 14496-2 последовательность 000001B0 =visual_object_sequence_start_code, что мы и имеем, осталось это слить и найти какой нарисовать заголовок

Устройство onvif не поддерживает никак - это everfocus EVS-100, из внешних инструментов, которыми к нему можно достучаться - только виндовый ocx, что по понятным причинам не устраивает, с помощью vlc была идея лить поток, но отпала так как устройство работает следующим образом -
1. стучимся на порт 1600 говорим несколько определенных байтов + логин/пароль
2. если все успешно, устройство отдает несколько определенных байтов + номер stream - порта+ сгенерированный пароль
3. сгенерированный пароль отправляем на stream порт - в ответ льется mp4 поток, только, похоже в начале надо несколько байт отбросить


В общем пытаюсь либо сливать поток в читабельные файлы, либо, если проще, просто напишу проксик к которому можно будет стучаться стандартным проигрывателем

hooj ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.