ffmpeg usando -re e -ss juntos

1

Estou usando o ffmpeg para transmitir ao vivo um arquivo de vídeo para um servidor RTMP. Estou usando a opção -re para garantir que o vídeo seja transmitido na taxa adequada para a fonte ao vivo. Ocasionalmente, quero transmitir o vídeo iniciando 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 passará por eles em -re speed, o que significa que preciso aguarde (neste caso) três minutos antes de o fluxo ser visto, ponto no qual ele inicia três minutos.

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 duas instâncias de pessoas querendo saber como fazer isso sem solução aparente.

    
por Suchipi 19.04.2015 / 11:57

1 resposta

1

Tente especificar -ss 00:03:00 antes do seu arquivo de entrada.

Eu não tentei isso com captura de tela / livestreaming, mas sei que isso funciona com a sintaxe de transcodificação do ffmpeg padrão.

Por exemplo, o seguinte comando inserirá um arquivo, transcodificará o arquivo inteiro para h264 e, em seguida, salvará a saída apenas na marca de 3 minutos.

ffmpeg -i [INPUT] -ss 00:03:00 -c:v h264 [output]

Por outro lado, o comando a seguir, introduzirá um arquivo na marca de 3 minutos, transcodificará a partir daquele ponto e salvará a saída. O arquivo de saída deve ser idêntico à saída 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 livestreaming. Espero que ajude!

    
por 21.04.2015 / 18:30