Читать и писать заголовок для каждого видеокадра - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть запатентованное видео формата XVI, из которого я смог извлечь отдельные кадры и экспортировать их в формате Uint8 JPEG (адаптировано из здесь ). Однако в заголовке также содержится информация для каждого кадра, которую я sh должен сохранить и записать в новый заголовок JPEG.

Первые 1024 байта файла содержат информацию заголовка видео. После этого каждый кадр имеет следующий формат: Pixel (x, y) = block [x + (y * width)]. Каждый кадр имеет 640 * 480 пикселей. Каждый кадр также имеет 32-байтовый заголовок.

Я могу прочитать и экспортировать данный кадр (например, кадр 400), используя:

import numpy as np
import imageio

#read the data from the file
with open('20200315b.xvi', 'rb') as infile:
    n=400
    infile.seek(1024+(32+640*480*2)*n)
    #read frame bytes into buffer
    buf = infile.read(640*480*2)

    #use numpy to construct an array from the bytes
    x = np.frombuffer(buf, dtype='uint16').reshape(480, 640)
    imageio.imwrite('Frame' + str(n) + '.jpg', x)

, но я также wi sh, чтобы сохранить Информация заголовка для каждого кадра. Он содержит полезную информацию, такую ​​как отметка времени и c, которая мне понадобится.

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

...