![ffmpeg usando -re e -ss juntos](https://rvso.com/image/1447614/ffmpeg%20usando%20-re%20e%20-ss%20juntos.png)
Estou usando o ffmpeg para transmitir ao vivo um arquivo de vídeo para um servidor RTMP. Estou usando a -re
opção para garantir que o vídeo seja transmitido na taxa adequada para a fonte ao vivo. Ocasionalmente, quero transmitir o vídeo a partir de alguns minutos. No entanto, se eu adicionar -ss 00:03:00
, por exemplo, os primeiros quadros não serão transmitidos, mas o ffmpeg ainda os passará em -re
alta velocidade, o que significa que tenho que esperar (neste caso) três minutos antes que o fluxo possa ser visto, ponto em que ele começa três minutos depois.
Isso é tecnicamente o que eu pedi, mas também é inútil no contexto. Existe uma maneira de dizer ao ffmpeg para iniciar em um determinado momento, mas ir diretamente para lá para que ele se comporte de maneira útil ao usar -re
?
A lista de discussão ffmpeg-user tem pelo menos dois casos de pessoas se perguntando como fazer isso sem solução aparente.
Responder1
Tente especificar -ss 00:03:00 antes do seu arquivo de entrada.
Não tentei isso com captura de tela/transmissão ao vivo, mas sei que funciona com a sintaxe de transcodificação ffmpeg padrão.
Por exemplo, o comando a seguir irá inserir um arquivo, transcodificar o arquivo inteiro para h264 e, em seguida, salvar a saída apenas a partir da marca de 3 minutos.
ffmpeg -i [INPUT] -ss 00:03:00 -c:v h264 [output]
Por outro lado, o comando a seguir inserirá um arquivo na marca de 3 minutos, transcodificará a partir desse ponto e salvará a saída. O arquivo de saída deve ser idêntico ao resultado acima, mas como os primeiros três minutos não estão sendo decodificados, o tempo de processamento é muito menor.
ffmpeg -ss 00:03:00 -i [INPUT] -c:v h264 [output]
Novamente, não sei se isso funciona com transmissão ao vivo. Espero que ajude!