Разбор символа * данных h.264 - PullRequest
0 голосов
/ 19 марта 2012

У меня есть массив char * двоичных данных.

Это двоичный медиапоток, закодированный с помощью h.264.

Он имеет следующую структуру: ...

stream_header - это 64-байтовая структура.

Я уже сделал reinterpret_cast (charArray), где chararray представляет первые 64 байта потока.Я успешно получаю все данные заголовка.В этом заголовке есть переменная nLength, которая сообщает нам, сколько байтов медиа-данных находится в следующих stream_data.

Например, 1024 байта.

Я читаю следующие 1024 байта в массиве данных char *.и вот мой вопрос начинается: как я могу получить из этого набора данных видеокадров (в структуре у меня есть информация о разрешении этих кадров), и сохранить его в * .jpg файлах, таких как (1.jpg 2.jpg 3.jpg .....)

Может, кто-то уже что-то сделал наподобие ???Помоги мне, плз ..

Ответы [ 2 ]

1 голос
/ 19 марта 2012

Если вы просто хотите получить последовательность файлов JPEG из видеофайла, GStreamer может сделать это среди многих других вещей.

Если вы хотите написать код с нуля, чтобы конвертировать видео H.264 в JPEG, позвольте мне предупредить вас, что у вас есть много сотен страниц спецификаций документов и немного очень серьезной математики, которую нужно понять и затем реализовать. Это были бы месяцы работы для достаточно квалифицированного математика-программиста. Понимание формата MP4 является простой частью, сжатие видео поразит вас .

1 голос
/ 19 марта 2012

Вам нужна библиотека декодера H264, лучший вариант - ffmpeg

Но даже тогда немного сложнее использовать библиотеку - хотя декодирование проще, так как у вас меньше вариантов для беспокойства.

Вам действительно нужно сделать это в программе? Использовать исполняемый файл ffmpeg очень просто, чтобы сохранить видео в формате jpegs

...