Узел Медиа Сервер: Принудительная 480p при потоковой передаче видео - PullRequest
0 голосов
/ 12 февраля 2020

Я работаю над приложением для потоковой передачи, написанным на node.js, с использованием пакета Node Media Server. Работает отлично! Вопрос tho, мы можем заставить потоковое видео или воспроизведение (записанное) к 480p?

Мое предположение, в конфигурации ниже мы можем видеть:

const config = {
    rtmp: {
        ...
    },
    http: {
        ...
    },
    trans: {
        ffmpeg: "/usr/local/bin/ffmpeg",
        tasks: [
            {
                app: 'live',
                vc: "copy",
                vcParam: [],
                ac: "aac",
                acParam: ['-ab', '64k', '-ac', '1', '-ar', '44100'],
                rtmp: true,
                rtmpApp: 'live-ac',
                hls: true,
                hlsFlags: '[hls_time=2:hls_list_size=3:hls_flags=delete_segments]',
                mp4: true,
                mp4Flags: '[movflags=faststart]',
            }
        ]
    }
};

В то время как acParam получил параметры для некоторый код c и битрейт. vcParam также должен принимать параметры для управления кодировкой видео.

Я попытался найти некоторые связанные статьи, касающиеся транскодирования и некоторой конфигурации. Я обнаружил, что некоторые используют nginx, но это не соответствует требованию, которое у меня есть на node.js

Опять же, можем ли мы принудительно заставить потоковое видео или воспроизведение (записанное) на 480p? Заранее спасибо!

1 Ответ

0 голосов
/ 27 марта 2020

Вы использовали v c copy. Это означает, что он всегда будет использовать исходный код c видео, а не перекодировать его.

Вы можете попробовать добавить:

vcParams: [
          '-vf',
          "'scale=854:-1'",
          '-b:v',
          '1400k',
          '-preset',
          'fast',
          '-profile:v',
          'baseline',
          '-bufsize',
          '2100k',
          '-tune',
          'zerolatency',
        ],
...