Есть очень хороший шанс, что я иду по этому бессмысленному пути, поэтому я прошу прощения, если это пустая трата времени.Я пытался записать несжатое видео в FLV-файл, и я не уверен, возможно ли это.
Согласно Википедии, допустимая опция кодирования видео равна 0, что указывает на кодирование видео "RGB":https://en.wikipedia.org/wiki/Flash_Video#Packets. Однако я не вижу упоминания об этом параметре Кодека в документации Adobe;ни «Спецификация формата видеофайлов версии 10», ни «Спецификация формата видеофайлов Adobe Flash версии 10.1».
Я исходил из того, что допускается идентификатор кодека 0 / RGB.Я жестко запрограммировал массив беззнаковых символов в C и использовал fwrite для записи следующих метаданных Double / Number в новый двоичный FLV-файл (который, я полагаю, я правильно написал):
- продолжительность: 4 (секунды)
- ширина: 16 (пиксели)
- высота: 16 (пиксели)
- видеодатарат: 6 (кбит / с)
- частота кадров:1 (fps)
- Видеокод: 0
- Размер файла: 3323 (байт)
Затем я добавил 4 тега VIDEODATA, по 1 для каждого кадра RGB, на который я надеялсянаписать.Их временные метки равны 0, 1000, 2000 и 3000 (миллисекунды).Все четыре имеют полезную нагрузку 769 байт: первый байт, указывающий, что это ключевой кадр с идентификатором кодека 0, а остальные 768 должны представлять изображение 16x16x3 (RGB).Я написал 255 / 0xFF для всех значений в надежде увидеть маленький белый экран в течение 4 секунд.
Когда это неправильно воспроизводилось в VLC Media Player, как я боялся, я пытался использовать цвета RGBA для каждогоРамка.Я также изменил метаданные видеодатарата и размера файла на числовые значения 8 (кбит / с) и 4347 (байт) соответственно.
К сожалению, это не воспроизводилось и в VLC Media Player.Мне было интересно, знает ли кто-нибудь наверняка, возможно ли несжатое видео в FLV-файле?Если это так, мне было бы любопытно, в каком формате должны быть видеоданные (RGB, RGBA, несколько тегов VIDEODATA, только один тег VIDEODATA и т. Д.)?
Мой код C в основном один, гигантский массив неподписанных символов, но если кто-то хотел бы увидеть это, я могу попробовать добавить его.Любой совет с благодарностью.
Спасибо,
Митчелл A