101 / 102 / 31
Регистрация: 15.01.2014
Сообщений: 283
1

Потоковое видео H264

17.01.2014, 12:13. Показов 9383. Ответов 22
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Столкнулся со следующей проблемой:
от DVR с подлючёнными к нему камерами получаю по средствам API некие кадры. Эти кадры идут пакетами разного размера (сначала 17Кб потом несколько по 4-7КБ). Преобразовать как либо в видео данные кадры не получается. Если же это поток H264, то как мне собрать его и транслировать к примеру для VLC Player.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.01.2014, 12:13
Ответы с готовыми решениями:

Потоковое видео на С++
Всем привет! Подскажите, пожалуйста, как реализуется на С++ чтение кадров потокового видео.

Потоковое видео QMediaPlayer и формат H264
Доброго времени суток. Перейду сразу к делу. Есть сервер, который по TCP шлет потоковое видео с...

Потоковое видео через роутер, не могу смотреть потоковое видео на телефоне через Wi-Fi
Доброго времени суток, форумчане. У меня возникла следующая проблема: не могу смотреть потоковое...

Извлечь кадр из .h264, или преобразовать .h264 в avi
Извлеч кадр из .h264 или его преобразование в avi подскажите если кто то обладает как извлеч из...

22
Модератор
3386 / 2158 / 352
Регистрация: 13.01.2012
Сообщений: 8,375
17.01.2014, 13:03 2
в начале вам следует обратиться к документации на ваше оборудование. для примера: у меня стоит камера (о всей системе можно посмотреть по ссылке http://habrahabr.ru/post/177071/) которая транслирует видео по сети. это видео я могу смотреть указав в VLC ссылку вида rtsp://admin:12345@192.0.0.64/h264/ch1/sub/av_stream. возможно у вас видео так же отдается через RTSP и нужно просто знать правильную ссылку.
0
101 / 102 / 31
Регистрация: 15.01.2014
Сообщений: 283
17.01.2014, 14:00  [ТС] 3
Цитата Сообщение от vxg Посмотреть сообщение
в начале вам следует обратиться к документации на ваше оборудование. для примера: у меня стоит камера (о всей системе можно посмотреть по ссылке http://habrahabr.ru/post/177071/) которая транслирует видео по сети. это видео я могу смотреть указав в VLC ссылку вида rtsp://admin:12345@192.0.0.64/h264/ch1/sub/av_stream. возможно у вас видео так же отдается через RTSP и нужно просто знать правильную ссылку.
вот моя функция принимающая кадры и записывающая в файлик, то есть когда идёт проигрывание, вот эта функция начинает возвращать пакеты
C++
1
2
3
4
5
6
7
static int CALLBACK ReadDatacbf(HLIVE hStream, BYTE *pDataBuf, DWORD dwDataLen, DWORD dwUserData)
{
    f = fopen("out.txt","a+");
    fwrite(pDataBuf,dwDataLen,1,f);
    fclose(f);
    return 0;
}
вот что говорит документация (в переводе с китайского)

3.2 CB_StreamData
[ Description ]
Streaming data callback (entire frame as a unit through 264 after the compressed video frames encoded / compressed through ADPCM encoded audio frames after ) , the real-time flow is valid only for the interface . The received media data ( including audio and video ) , the application can make their own data processing, such as decoding , save operations.
Be careful not to obstruct the implementation of the operation in the callback as possible , otherwise it will affect the entire live stream of the receiving process .
[ Grammar ]
typedef int (CALLBACK * CB_StreamData) (HLIVE hStream, BYTE * pDataBuf, DWORD dwDataLen, DWORD dwUserData);
[ Parameter]
Parameter Name Description Input / Output
hStream live stream handle input
pDataBuf media data buffer that is generated by the client network SDK and maintenance , the application shall not make any changes to this buffer . input
dwDataLen buffer length of input data
dwUserData user data passed by the user when setting the callback parameter input
[ Return value ]
Return Value Description
Ignore
0
Модератор
3386 / 2158 / 352
Регистрация: 13.01.2012
Сообщений: 8,375
17.01.2014, 14:13 4
Цитата Сообщение от Enotniy Посмотреть сообщение
вот что говорит документация
в системе которую я приводил в качестве примера тоже была такая функция - она принимала некие пакеты. принимала и скармливала другой SDK функции которая занималась их воспроизведением или сбросом видео на диск. содержимое этих пакетов навеки осталось для меня тайной. единственное что удалось установить - если писать приходящие пакеты в файл, а потом этот файл считывать скармливая извлеченные из него пакеты той самой SDK функции, то все работает так как будто у нас имеется реально вещающая камера, что, впрочем, неудивительно - без разницы откуда пришили данные - из сети или были прочитаны из файла. если ваша документация так же не содержит разъяснений относительно того что лежит в буфере вам так же придется искать SDK функции для того что бы получить видео

Добавлено через 3 минуты
...возможно в буфере реально сжатый блок, но сказать об этом может либо создатель оборудования (расплывчатой формулировки недостаточно, они должны были как минимум сделать ссылку на спецификацию) либо человек имеющий нереальный опыт разбора на биты сжатых пакетов и знающий как они могут выглядеть без прекрас
1
101 / 102 / 31
Регистрация: 15.01.2014
Сообщений: 283
17.01.2014, 14:44  [ТС] 5
Цитата Сообщение от vxg Посмотреть сообщение
в системе которую я приводил в качестве примера тоже была такая функция - она принимала некие пакеты. принимала и скармливала другой SDK функции которая занималась их воспроизведением или сбросом видео на диск. содержимое этих пакетов навеки осталось для меня тайной. единственное что удалось установить - если писать приходящие пакеты в файл, а потом этот файл считывать скармливая извлеченные из него пакеты той самой SDK функции, то все работает так как будто у нас имеется реально вещающая камера, что, впрочем, неудивительно - без разницы откуда пришили данные - из сети или были прочитаны из файла. если ваша документация так же не содержит разъяснений относительно того что лежит в буфере вам так же придется искать SDK функции для того что бы получить видео
К сожалению идут только dll и вот такое описание. Есть готовое ПО работающее, юзающее эти DLLки, так же в это ПО вмонтирован проигрыватель, но он сохраняет данные в своем интересном формате Dvr вместе с какими-то индексными файлами .idx и .bigidx, которые ест только он.

Кстати программка GSpot определила формат моего файла как H264, но видимо не хватает каких то заголовков.
Потоковое видео H264
0
Модератор
3386 / 2158 / 352
Регистрация: 13.01.2012
Сообщений: 8,375
17.01.2014, 15:44 6
я в этом деле как бы не совсем бум бум, но пальцем в небо могу предположить, что возможно вы правы и файлу не хватает шапки размером всего в несколько байт где было бы описано ЧТО-ТО чего не хватает для полного счастья VLC. другими проигрывателями пробовали открывать? KMP?
0
101 / 102 / 31
Регистрация: 15.01.2014
Сообщений: 283
20.01.2014, 06:12  [ТС] 7
Цитата Сообщение от vxg Посмотреть сообщение
я в этом деле как бы не совсем бум бум, но пальцем в небо могу предположить, что возможно вы правы и файлу не хватает шапки размером всего в несколько байт где было бы описано ЧТО-ТО чего не хватает для полного счастья VLC. другими проигрывателями пробовали открывать? KMP?
Перепробовав с десяток проигрывателей, получил интересные результаты на KMP и GOM
KMP сказал :

--------------------
[Сведения о файле]
--------------------
C:\Users\Егор\Desktop\box\out.avi
General
Complete name : C:\Users\Егор\Desktop\box\out.avi
Format : AVC
Format/Info : Advanced Video Codec
File size : 31.6 MiB
Video
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Baseline@L4.2
Format settings, CABAC : No
Format settings, ReFrames : 1 frame
Format settings, GOP : M=1, N=50
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 25.000 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive


Gom выдал серые кадры с некими проблесками цвета, но вот самый лучший кадр :
Потоковое видео H264
0
Модератор
3386 / 2158 / 352
Регистрация: 13.01.2012
Сообщений: 8,375
20.01.2014, 09:20 8
Цитата Сообщение от Enotniy Посмотреть сообщение
самый лучший кадр
да, кисловат кадр конечно.. забавно если он видит характеристики и они верны, а кадр рисовать не может..
0
101 / 102 / 31
Регистрация: 15.01.2014
Сообщений: 283
20.01.2014, 11:43  [ТС] 9
Цитата Сообщение от vxg Посмотреть сообщение
а, кисловат кадр конечно.. забавно если он видит характеристики и они верны, а кадр рисовать не может..
кодек нужен какой-то особенный? не может быть чтобы были помехи, так как изображение есть (например воспроизведение записанного)
0
Модератор
3386 / 2158 / 352
Регистрация: 13.01.2012
Сообщений: 8,375
20.01.2014, 12:56 10
кодек он бы сказал. а так - хз. как будто что-то не то распаковывает. может там в теле какие-то левые байты контроля потоковой передачи которых в видео файле быть не должно
0
101 / 102 / 31
Регистрация: 15.01.2014
Сообщений: 283
20.01.2014, 13:31  [ТС] 11
vxg, Придётся писать китайцам, вдруг что вразумительно ответят.

Тогда такой вопрос, DVR умеет рисовать видео онлайн, но только в окно которое ты ему подсунешь. Задаешь handle - вот тебе видео. Возможно как нибудь очень эффективно эту картинку захватывать?
0
Модератор
3386 / 2158 / 352
Регистрация: 13.01.2012
Сообщений: 8,375
20.01.2014, 13:51 12
Захватывал снимки с такого окна в виде JPEG заданного размера (естественно ставить размер больше чем у окна смысла нет) и качества. Потом отдавал эти снимки на HTML-страницу либо в виде слайдов (JS на странице сам обновлял IMG с заданным периодом) либо всем желающим в виде MJPEG (с разумной частотой). Исходники на http://alphacity.netii.net/tree/prjs-web.htm в ipc preview
0
101 / 102 / 31
Регистрация: 15.01.2014
Сообщений: 283
20.01.2014, 13:59  [ТС] 13
vxg, не медленно ли будет работать? всё таки поток 2Мбит?
0
Модератор
3386 / 2158 / 352
Регистрация: 13.01.2012
Сообщений: 8,375
20.01.2014, 14:10 14
Цитата Сообщение от Enotniy Посмотреть сообщение
не медленно ли будет работать? всё таки поток 2Мбит?
медленно. хотя я не делал стресс тестов. +будет зависеть от размеров и качества. просто думаю что медленно. однако в какой-то статье встречал удивительную историю что человек каким-то похожим образом (по кадрам) гнал видео)

Добавлено через 30 секунд
...я выдавал с частотой 2 кадра в секунду оригинальную картину. без тормозов

Добавлено через 22 секунды
...по локальной сети. через Wi-Fi
1
101 / 102 / 31
Регистрация: 15.01.2014
Сообщений: 283
20.01.2014, 14:11  [ТС] 15
vxg, на самом деле маловато, буду пытаться субпоток разогнать в видео
0
Модератор
3386 / 2158 / 352
Регистрация: 13.01.2012
Сообщений: 8,375
20.01.2014, 14:17 16
Цитата Сообщение от Enotniy Посмотреть сообщение
на самом деле маловато, буду пытаться субпоток разогнать в видео
смотря для каких применений. у меня видео пишет SDK функция с родной частотой и разрешением. я прямо уверен что у вас тоже должна быть такая функция. как нелепый вариант - попробуйте запхать ваши данные в функцию моего SDK %) - потоки вроде одни и те же - ну должно же понять)
0
101 / 102 / 31
Регистрация: 15.01.2014
Сообщений: 283
20.01.2014, 14:30  [ТС] 17
Цитата Сообщение от vxg Посмотреть сообщение
Потом отдавал эти снимки на HTML-страницу либо в виде слайдов (JS на странице сам обновлял IMG с заданным периодом) либо всем желающим в виде MJPEG (с разумной частотой). Исходники на http://alphacity.netii.net/tree/prjs-web.htm в ipc preview
сходу работать не стало, буду завтра ковыряться
0
Модератор
3386 / 2158 / 352
Регистрация: 13.01.2012
Сообщений: 8,375
20.01.2014, 14:48 18
Цитата Сообщение от Enotniy Посмотреть сообщение
сходу работать не стало
потрошили g_RealDataCallBack_V30 направляя ваши данные в PlayM4_x? может головы у пакетов разные...

Добавлено через 5 минут
вот что приходило с моего устройства (в файле имеется лишняя информация необходимая для восстановления пакетов - этот файл читает симулятор, можете выкинуть эту /руками / информацию если хотите получить чистый поток). +мои безуспешные попытки понять RTSP (описание).
0
101 / 102 / 31
Регистрация: 15.01.2014
Сообщений: 283
20.01.2014, 14:49  [ТС] 19
vxg, Завтра с утра начну, а то рабочий день заканчивается
0
Модератор
3386 / 2158 / 352
Регистрация: 13.01.2012
Сообщений: 8,375
20.01.2014, 14:56 20
вот оно)
Вложения
Тип файла: zip playm4_sim.zip (4.13 Мб, 57 просмотров)
Тип файла: zip rtsp.zip (53.0 Кб, 72 просмотров)
0
20.01.2014, 14:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.01.2014, 14:56
Помогаю со студенческими работами здесь

Воспроизведение видео .h264 без сторонних кодеков
Всем привет! Делаю воспроизведение стартового видео в игре через DirectShow, столкнулся с...

Потоковое видео
Если есть открытые протоколы потокового видео, помогите пожалуйста найти их спецификации.

Потоковое видео
Здравствуйте . Мне нужно сделать приложение internet tv . Нашел инфу о том, что это можно сделать...

Потоковое видео
Как воспроизвести потоковое видео? Какие компоненты надо использовать и как воспроизвести видео с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru