transmitir arquivo mp4 com ffmpeg de um horário específico do vídeo

transmitir arquivo mp4 com ffmpeg de um horário específico do vídeo

Desejo transmitir um arquivo de vídeo (.mp4) de um horário de início diferente.

ParaexemploQuero transmitir test.mkvarquivos a partir de um minuto, como 00:02:30um test.mkvvídeo. Então, quando eu transmito para o servidor rtmp, o vídeo é iniciado a partir 00:02:30do filme e não iniciado. Observação: Não quero esperar tanto tempo, quero começar a partir desse momento logo após pressionar Enter no ffmpegcomando, então respostas como using cronjobnão são úteis.

Aqui está o ffmpegcomando que estou usando:

ffmpeg -i test.mkv -pix_fmt yuv420p -vsync 1 -threads 0 -vcodec libx264 -r 30 -g 60 -sc_threshold 0 -b:v 512k -bufsize 640k -maxrate 640k -preset veryfast -profile:v baseline -tune film -acodec aac -b:a 128k -ac 2 -ar 48000 -af "aresample=async=1:min_hard_comp=0.100000:first_pts=0" -bsf:v h264_mp4toannexb -f flv rtmp://test.server.com

Observação:

Se vocês tiverem alguma sugestão para melhorar ffmpego comando, também agradeço.

Responder1

Parece que a bandeira está, -ssmas de alguma forma há uma pequena dica para que funcione. Deve ser colocado antes de qualquer -iargumento para funcionar. Tão simples adicionando, por exemplo, -ss 150começará a partir de 150 segundos do início do vídeo. Então o comando acima será como:

ffmpeg -ss 150 -i test.mkv -pix_fmt yuv420p -vsync 1 -threads 0 -vcodec libx264 -r 30 -g 60 -sc_threshold 0 -b:v 512k -bufsize 640k -maxrate 640k -preset veryfast -profile:v baseline -tune film -acodec aac -b:a 128k -ac 2 -ar 48000 -af "aresample=async=1:min_hard_comp=0.100000:first_pts=0" -bsf:v h264_mp4toannexb -f flv rtmp://test.server.com

Observação:

Coloque -ssantes de qualquer -iargumento.

informação relacionada