Desejo transmitir um arquivo de vídeo (.mp4) de um horário de início diferente.
ParaexemploQuero transmitir test.mkv
arquivos a partir de um minuto, como 00:02:30
um test.mkv
vídeo. Então, quando eu transmito para o servidor rtmp, o vídeo é iniciado a partir 00:02:30
do 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 ffmpeg
comando, então respostas como using cronjob
não são úteis.
Aqui está o ffmpeg
comando 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 ffmpeg
o comando, também agradeço.
Responder1
Parece que a bandeira está, -ss
mas de alguma forma há uma pequena dica para que funcione. Deve ser colocado antes de qualquer -i
argumento para funcionar. Tão simples adicionando, por exemplo, -ss 150
começ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 -ss
antes de qualquer -i
argumento.