Como usar o ffmpeg para extrair a transmissão ao vivo em uma seqüência de mp4

1

Eu gostaria de gravar uma transmissão ao vivo para uma seqüência de mp4 no disco. Eu posso fazer um arquivo assim:

ffmpeg -i rtmp://source.com/live/stream -r 5 -t 60 c:\test.mp4

Isso resulta em um 60s mp4 (test.mp4). O que eu gostaria é algo assim:

ffmpeg -i rtmp://source.com/live/stream -r 5 -t 60 c:\test%d.mp4

Isso resulta em um mp4 de 60s por minuto (test1.mp4, test2.mp4, etc). Estou achando muitos exemplos para extrair quadros únicos de maneira semelhante, mas não em vídeo.

Eu percebo que posso apenas fazer uma chamada em loop para o primeiro exemplo, mas eu esperava que houvesse uma boa maneira de fazer isso com o mínimo de perda entre cada arquivo, deixando o ffmpeg lidar com o sequenciamento. Qual é a maneira mais limpa de gravar uma transmissão ao vivo em uma seqüência de mp4?

    
por Daniel 12.11.2015 / 06:12

1 resposta

8

Você pode usar o muxer de segmento . Exemplo de comando:

ffmpeg -i rtmp://source.com/live/stream -c copy -flags +global_header -f segment -segment_time 60 -segment_format_options movflags=+faststart -reset_timestamps 1 test%d.mp4
    
por 12.11.2015 / 14:06

Tags