2015-03-26 4 views
1

В настоящее время я играю с ffmpeg + libx264, но я не смог найти способ ограничить обратную зависимость между кодированными кадрами.Как ограничить обратную зависимость между закодированными кадрами в ffmpeg/x264

Позвольте мне объяснить, что я имею в виду: я хочу, чтобы закодированные фреймы содержали только ссылки, скажем, 5 кадров в будущем. В результате ни один кадр не должен «ждать» более чем 5 кадров для кодирования (имеет смысл для приложений с низкой задержкой).

Мне известно о варианте -tune zerolatency, но это не то, что я хочу; Я все еще хочу двунаправленное предсказание.

ответ

2

Если вы хотите ограничить количество последовательных B-кадров, вы можете использовать опцию --bframes <integer> x264 или опцию 0FFmpeg -bf <integer>.

Смотрите также: Diary Of An x264 Developer - x264: the best low-latency...

+1

или, возможно, ограничить I-кадры (опция GOP)? https://trac.ffmpeg.org/wiki/StreamingGuide#Latency – rogerdpack

+0

Это очень интересный артикул, спасибо за это =) Однако он фокусируется на приложениях с очень низкой задержкой, что намного ниже того, что мне нужно (и имеет более высокий битрейт компромисс, чем я хочу). Я попробую B-кадровую вещь завтра (вопрос в том, будет ли x264 делать предсказание через P-кадры в B-кадрах. Что касается ограничения размера gop: я могу, конечно, ограничить обратную зависимость через это, но есть огромный битратный компромисс со всеми I-кадрами. – Bastian35022

+0

Пока это работает, хотя в документации не гарантировано, поэтому я пойду с этим подходом. Спасибо за вашу помощь =) – Bastian35022