Очень хорошая статья на тему:
http://x264dev.multimedia.cx/archives/249
UPD, ссылка недоступна, через веб-архив:
http://web.archive.org/web/20150421033553/http://x264dev.multimedia.cx/archives/249
Цитата оттуда:
The total latency of x264, including encoder/decoder-side buffering, is:
B-frame latency (in frames) + Threading latency (in frames) + RC-lookahead (in frames) + Sync-lookahead (in frames) + VBV buffer size (in seconds) + Time to encode one frame (in milliseconds)
Собственно отсюда видно какие ручки крутить у того же FFmpeg что бы сделать задержку на стриминг как можно меньше:
-rc-lookahead #
-bf #
-threads #
-refs #
-x264-params sync-lookahead=#
и всякие буффера.
Эти же опции применительно к AVCodecContext:
AVCodecContext *ctx = ...;
...
av_opt_set(ctx, "rc-lookahead", "#", AV_OPT_SEARCH_CHILDREN);
av_opt_set(ctx, "threads", "#", AV_OPT_SEARCH_CHILDREN);
av_opt_set(ctx, "bf", "#", AV_OPT_SEARCH_CHILDREN);
av_opt_set(ctx, "refs", "#", AV_OPT_SEARCH_CHILDREN);
GOP size (-g/“g”) будет влиять на объём траффика и как быстро картинка сможет восстановиться, если ключевой кадр был потерян.
Ну из опций видно, что загоняя эти параметры в минимальные значения, получим максимальную скорость. Уменьшать количество потоков (threads) имеет смысл когда у вас несколько подобных процессингов.
Есть ещё опция -tune (“tune”) со значением “zerolatency” - вундервафля, которая почти сгоняет задержку в ноль, но и качество картинки примерно туда же. Про то, что включает в себя различные опции тюнинга можно посмотреть в выводе:
x264 --fullhelp
Дополнительные материалы:
-
X264 Settings - детальное описание параметров x264, может быть не самым актуальным.
- ссылка через веб-архив: http://web.archive.org/web/20150203203142/http://mewiki.project357.com/wiki/X264_Settings
-
Encoding presets for x264 - какие пресеты какие параметры включают, может быть не самым актуальным.
- ссылка через веб-архив: http://web.archive.org/web/20150802090458/http://dev.beandog.org/x264_preset_reference.html
UPD: что-то странно, что все ссылки стали недоступны. Особенно рекомендации Ясона.