Аппаратное кодирование FFMPEG H264

В настоящее время я пытаюсь использовать FFMPEG с аппаратным / графическим кодированием с кодеком H264.

То, что я делаю, я направляю необработанные данные в ffmpeg для вывода их в поток udp. Это мои настройки:

var ffmpegArgs = [
    '-c:v', 'rawvideo',// input container
    '-f', 'rawvideo',
    '-pix_fmt', 'rgba', // input pixel format
    '-s', '600x600', //input size
    '-video_size', '600x600',
    '-i', 'pipe:0', // input source
    '-f', 'mpegts', // output container format
    '-s', '600x600',
    '-video_size', '600x600',
    '-c:v', 'libx264', // output video codec
    '-b:v', '1m', // output bitrate
    'udp://239.255.123.46:1234' // output destination
];

И в целом это работает, но с действительно плохим качеством и задержкой. Кадры отстают на 5 секунд, а затем содержат много ошибок, поэтому для просмотра кадра с дырой требуется не менее 10 или 15 секунд (видео - это "прямой эфир" с холста).

Однако я подумал, что здесь может помочь кодирование GPU, но у меня это не получается. Я пытаюсь использовать VAAPI, но независимо от того, какую команду от ffmpeg я пытаюсь использовать ( здесь описано), она не работает....

Я пытаюсь запустить это на Intel NUC ( этот) на Ubuntu 16.04.

Есть ли какие-нибудь советы о том, как мне это запустить?

0 ответов

Используемый вами кодировщик, libx264, не поддерживает кодирование с аппаратным ускорением. Доступны только (некоторые) функции упреждающего просмотра с ускорением OpenCL, и выигрыш в производительности от этого в лучшем случае незначителен, особенно в высокопроизводительных системах. Чтобы предоставить возможность упреждающего ускоренного просмотра в этой библиотеке, убедитесь, что заголовки OpenCL ICD и OpenCL присутствуют в системе и что параметр--disable-openclопускается на этапе настройки x264. Аналогично, для FFmpeg убедитесь, что--enable-opencl включен на этапе настройки.

Взгляните на аналогичные ответы, предоставленные на запросы, касающиеся кодирования с аппаратным ускорением с помощью FFmpeg.

  1. С NVENC.

  2. С QuickSync (для которого требуется установка Intel Media SDK при настройке и сборке FFmpeg).

  3. С VAAPI.

И вики FFmpeg об аппаратном ускорении.

Другие вопросы по тегам