Я просто пытаюсь прочитать видео Stream из IP-камеры (Basler BIP-1280c). Поток, который я хочу сохранить, сохраняется в буфере на камере, имеет длину 40 секунд и декодируется в MJPEG.MJPEG Видео с IP-камеры слишком быстро
Теперь, если я получаю доступ к потоку через свой веб-браузер, он показывает мне 40 секунд без проблем. Но на самом деле мне нужно приложение, которое может загружать и сохранять поток самостоятельно.
Доступ к камере осуществляется через http, поэтому я использую libcurl
для доступа к ней. Это прекрасно работает, и я также могу загрузить поток без каких-либо проблем. Я решил сохранить данные потока в файл * .avi (надеюсь, что это правильно ...?).
Но теперь к проблеме: я могу открыть видео (пробовали с помощью Totem Video Player и VLC), а также просмотреть все записанные - НО это слишком быстро. Все видео длится как 5 секунд (вместо 40). Есть ли в MJPEG что-нибудь в заголовке, куда помещать информацию, такую как общая длина видео или fps? Я имею в виду, что для видеоплееров не хватает информации, чтобы они играли так быстро?
Update:
Как было предложено в ответах, я открыл файл с двоичным редактором и то, что я нашел это:
--myboundary..Content-Type: image/jpeg..Content-Length: 39050.........*Exif..II*...............V...........................2...................0210................FrameNr=000398732 6.AOI=(0800x0720)@(0240,0060)/(1280x0720).Motion=00000 (no) [00000 | 00000 | 00000 | 00000 | 00000].Alarm=0000 (no) .IO =000.RtTrigger=0...Basler..BIP2-1280c..1970:01:05 23:08:10.8 98286......JFIF.....
. ............................ ....&"((
Этот заголовок перезаписывается в файле по всему (за ним следует много байтов двоичных данных). Это на самом деле все в порядке, так как я прочитал в руководстве камеры, что все изображения MJPEG получают этот заголовок.
Более интересные в JFIF
в последней строке. Как и в предложенных ответах, это может быть индикатор формата файла. Но afaik JFIF - это единый формат изображения, как и jpg. Так может ли это даже означать, что весь видеофайл - это просто «безмозглые» прикованные картинки? И мой игрок просто предполагает, что он должен показывать эти фотографии один за другим, не зная о частоте кадров?
Проверьте значение частоты вращения, указанное вами для файла avi. Рассчитайте, сколько кадров вы написали в avi, а затем подсчитайте, что должно быть с частотой кадров, чтобы воспроизвести их все в течение 40 секунд. –
Контейнер AVI' сломан (изображения, возможно, хороши, но временных меток нет), если у вас есть другие варианты формата файла, возможно, вы захотите попробовать альтернативу. AVI с фиксированной частотой кадров для файлов не подходит для потоков IP-камер. –
Но я действительно не могу выбрать формат файла. Я просто могу получить доступ к данным потока, а затем мне нужно выгрузить его в файл. Поэтому я не влияю на то, как данные хранятся, я просто могу выбрать расширение файла. – Toby