Я (как и многие) пытаюсь получить непрерывную серию неподвижных изображений из камеры, прикрепленной к малиновому пи.Я хочу сделать это в Java по всем обычным причинам, и я использую команду Runtime exec для передачи вывода raspivid в следующую команду ffmpeg, а затем собираю результат с помощью stdout --- note xxx.h264 - тестовый файлгенерируется камерой, которая не воспроизводится из-за отсутствия контейнера, но я получаю изображения настолько наполовину хорошо.
ffmpeg -i xxx.h264 -vcodec rawvideo -r 2 -pix_fmt yuv420p -f nut -
У меня есть некоторый код, отображающий кадры, но они "маршируют" по всей области отображенияслева направо, и, кажется, растущее количество мусора в верхней части изображений.Я посмотрел на байты, которые он выводит, выполнив ту же команду и перенаправив ее в файл, затем используя vi / xxd, и обнаружил, что там есть материал заголовка ("гайка / контейнер мультимедиа ...").
Я предполагаю, что в моей команде ffmpeg добавлено больше метаданных, которые я не могу удалить при обработке необработанных данных yuv420p, как описано здесь: https://en.wikipedia.org/wiki/YUV#Y%E2%80%B2UV420sp_%28NV21%29_to_RGB_conversion_%28Android%29
Насколько я знаю, я не могу найти документацию по орехамгде-нибудь в удобочитаемом формате и в любом случае, кажется, что это не то, что я должен искать.Какие-нибудь указатели относительно того, как я могу распознать границы кадра в моем потоке байтов?