Pular para o conteúdo

Perfis FFmpeg no Senta: modelos de comando

Um perfil é uma entidade no Senta que representa um comando para executar o programa ffmpeg, no qual parâmetros como os streams de entrada e saída, além de outros parâmetros definidos pelo usuário, são substituídos por variáveis.

Exemplo:

Terminal window
ffmpeg -re -stream_loop -1 -i input.ts -vcodec mpeg4 -aspect 16:9 -f mpegts udp://bla-bla:1234

Este exemplo inicia um stream UDP com transmissão estática do arquivo input.ts para o endereço udp://bla-bla:1234.

Suponha que queremos usar o Senta para transmitir um arquivo estático. Podemos simplesmente adicionar uma linha aos perfis ou substituir os streams de entrada e saída por variáveis (${i} e ${o}, respectivamente), obtendo um perfil de transcodificação universal que pode ser reaproveitado em outros streams. O resultado é:

Terminal window
ffmpeg -re -stream_loop -1 -i ${i} -vcodec mpeg4 -aspect 16:9 -f mpegts ${o}

Além do perfil comum com variáveis padrão como ${i} e ${o}, você pode adicionar algumas extensões ao seu perfil.

Você pode definir o NAME do perfil. Esse nome será usado, por exemplo, ao enviar o perfil para o github. É um campo opcional.

Exemplo:

Terminal window
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"

Em seguida, você pode adicionar variáveis personalizadas após a palavra-chave WHERE.

Exemplo

Terminal window
# Simple startup profile for HD h264 encoding
# You can change it, fork it and share it with others
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": "Select GPU which stream will use, set empty if you don't use GPU",
"command": "-gpu $value",
"default": ""
}
}
]

Nota: você pode adicionar linhas de comentário ao seu perfil começando-as com //

O Senta instala 8 perfis prontos logo após a primeira execução - o exemplo HD h264 mostrado acima é um deles. Uma descrição detalhada de cada comando e de suas flags está em Perfis iniciais.

Você encontra perfis prontos no repositório: https://github.com/cesbo/senta-streamer-profiles

Para adicionar seu perfil ou alterar um existente:

  1. Faça um fork do repositório : Acesse https://github.com/cesbo/senta-streamer-profiles e clique no botão “Fork” no canto superior direito da página. Isso criará uma cópia do repositório na sua conta do GitHub.

  2. Clone o seu fork : Abra o terminal (ou o Git Bash no Windows) e execute o comando git clone https://github.com/your_username/senta-streamer-profiles, substituindo “your_username” pelo seu nome de usuário do GitHub.

  3. Crie uma nova branch : Entre no repositório clonado com o comando cd senta-streamer-profiles e crie uma nova branch com git checkout -b add_profile, onde “add_profile” é o nome da sua branch.

  4. Adicione o seu arquivo : Coloque o arquivo do seu perfil no diretório /profiles do repositório clonado.

  5. Adicione o arquivo à área de staging e faça o commit : Execute os seguintes comandos no terminal:

    Terminal window
    git add profiles/your_file_name
    git commit -m "Added profile: %your_file_name%"

    Substitua “your_file_name” pelo nome do seu arquivo.

  6. Envie as alterações para o seu repositório no GitHub : Execute o comando git push origin add_profile, onde “add_profile” é o nome da sua branch.

  7. Abra um Pull Request (PR) : Depois de enviar as alterações, acesse a página do seu repositório com o fork no GitHub. Lá você deverá ver o botão “Compare & pull request” para a sua nova branch. Clique nele.

  8. Crie o Pull Request : Revise as alterações que deseja fazer, confirme que tudo está correto e clique no botão “Create pull request”.

  9. Aguarde a revisão e o merge : Outros colaboradores do projeto podem revisar o seu Pull Request, deixar comentários ou solicitar alterações. Depois que o PR for revisado e aprovado, um dos mantenedores do projeto fará o merge da sua branch na branch principal.

Pronto! O arquivo do seu perfil agora deve estar adicionado ao repositório público.