Перейти к содержимому

Система профилей

Профиль — это сущность в senta-streamer, которая представляет собой команду для запуска программы ffmpeg, где параметры, такие как входные и выходные потоки, а также другие пользовательские параметры, заменяются переменными.

Пример:

Окно терминала
ffmpeg -re -stream_loop -1 -i input.ts -vcodec mpeg4 -aspect 16:9 -f mpegts udp://bla-bla:1234

В этом примере запускается UDP-поток с постоянной трансляцией файла input.ts по адресу udp://bla-bla:1234.

Предположим, что мы хотим использовать senta-streamer для трансляции статического файла. Мы можем просто добавить строку в профили, либо заменить входной и выходной потоки на переменные (${i} и ${o} соответственно), получив универсальный профиль транскодирования, который можно масштабировать для других потоков. В итоге получится:

Окно терминала
ffmpeg -re -stream_loop -1 -i ${i} -vcodec mpeg4 -aspect 16:9 -f mpegts ${o}

Помимо обычного профиля со стандартными переменными, такими как ${i} и ${o}, вы можете добавить некоторые расширения для своего профиля.

Вы можете задать NAME профиля. Это имя будет использоваться, например, когда вы загружаете профиль на github. Это необязательное поле.

Пример:

Окно терминала
ffmpeg -y -hide_banner -i ${i} -map 0:0 -map 0:1 -c:v h264_nvenc -preset fast -profile:v main -filter:v yadif -forced-idr 1 -b:v 4M -c:a aac -b:a 128k -r 25 -g 8 -keyint_min 13 -f mpegts ${o}
NAME "HD h264"

Далее вы можете добавить пользовательские переменные после ключевого слова WHERE.

Пример

Окно терминала
// Простой стартовый профиль для кодирования HD h264
// Вы можете изменить его, форкнуть и поделиться с другими
ffmpeg -y -hide_banner -i ${i} -map 0:0 -map 0:1 -c:v h264_nvenc ${gpu} -preset fast -profile:v main -filter:v yadif -forced-idr 1 -b:v 4M -c:a aac -b:a 128k -r 25 -g 8 -keyint_min 13 -f mpegts ${o}
NAME "HD h264"
WHERE
[
{
   "desc": "gpu",
   "data": {
    "name": "GPU",
    "description": "Выберите GPU, который будет использоваться потоком, оставьте пустым, если не используете GPU",
    "command": "-gpu $value",
    "default": ""
   }
}
]

Примечание: вы можете добавлять строки комментариев в свой профиль, начиная их с //