Я хочу добавить сообщение protobuf
в качестве прикрепления к видеофайлу Matroska (mkv) после того, как все видеокадры были записаны без копирования видеоданных. Это должно быть возможным, так как прикрепление произвольного файла в мы может быть достигнуто с помощью пакета Mkvtoolnix (для JPG):Добавить приложение в Matroska (mkv) программно после видеозаписи
# add attachment, no copy according to man page
mkvpropedit out.mkv --add-attachment ~/Downloads/hummingbird.jpg
.
.
# get attachment id
mkvmerge -i out.mkv
.
Attachment ID 1: type 'image/jpeg', size 821740 bytes, file name 'hummingbird.jpg'
.
# extract attachment
mkvextract attachments out.mkv 1:./test.jpg
Я хочу, чтобы быть в состоянии выполнить тот же чтения-запись цикл путем вызова методов библиотеки , Предпочтительно без необходимости сначала писать сообщение protobuf
в файл (например, путем передачи байтового массива сериализованного сообщения protobuf
).
В настоящее время я использую libav
для чтения/записи видеоданных с/на mkv. Поэтому мое любимое решение также будет зависеть только от libav
. Если это невозможно, я бы рассмотрел введение libEBML
и libMatroska
в качестве новых зависимостей (то же, что и MKVToolNix).
Каковы основные функции в рамках, которые необходимо призвать для достижения цели? Я уверен, что mbunkus знает решение ...