Неверная последовательность ключевого кадра (I) и P-кадра в двоичном потоке h264 - PullRequest
0 голосов
/ 08 апреля 2019

Я получаю видео с веб-камеры USB и кодирую в видеопоток h.264 следующим образом ...

ffmpeg.exe -f dshow -rtbufsize 200 м размер: v 50M выходной. h264

Я ожидаю 1-клавишный кадр и 29-P-кадр (с SPS / PPS) в потоке output.h264. Но я не получаю ожидаемого результата. Однако видео воспроизводится нормально.

Я пытался получить метаданные того же файла с помощью ffprob ..

ffprobe -show_frames videofilename.h264> outputlogfile.txt

Здесь я вижу правильную последовательность кадров 1-Key и 29-P кадров. Но если мы откроем файл h264 в двоичном считывателе (я использую HDX), я могу увидеть кадры Key / P не в правильной последовательности.

Вы можете скачать примеры h264 и журналы ffprob по ссылкам ниже.

https://www.dropbox.com/s/3ghpkqdc36wdgxr/TimerSample.h264?dl=0 https://www.dropbox.com/s/gdn64004o0udrfk/TimerSample.txt?dl=0

Здесь вы можете найти двоичную последовательность того же файла из (отфильтровано по стартовому коду)

Пожалуйста, дайте мне знать, мне не хватает какого-то фильтра. Спасибо.

1 Ответ

0 голосов
/ 09 апреля 2019

Выделенные элементы в скриншоте показывает, что битовый поток начинается с блоком SPS, то блоком PPS, то блок SEI, а затем ломтиками IDR изображения, то не эталонными изображениями срезов. Это все нормально и ожидаемо.

Используйте

ffmpeg -i videofilename.h264 -c copy -bsf:v trace_headers -f null -

чтобы увидеть текстовый дамп разбора битового потока.

...