Existe uma maneira simples de transmitir vídeo com ffmpeg para o iceast? O vídeo de origem está no video/x-matroska
formato. Os próprios fluxos estão em vários formatos (mpeg, vorbis, aac, etc.). Quero que o ffmpeg adivinhe a fonte por conta própria e depois transcodifique-a em qualquer coisa que possa ser reproduzida pelos navegadores "on the fly", mantendo a resolução e a proporção da fonte. video/webm
vai fazer. Eu tentei fazer isso (incluindo brincar com formatos de saída):
ffmpeg -i source.mkv -vcodec libvpx -cpu-used -5 -deadline realtime -content_type video/webm\
icecast://source:hackme@localhost:8000/vstream.webm
Mas o stream não pode ser reproduzido e as conexões fazem com que o ffmpeg seja encerrado com o seguinte erro:
av_interleaved_write_frame(): Connection reset by peer
Error writing trailer of icecast://source:hackme@localhost:8000/vstream.webm: Connection reset by peer
Envolver qualquer coisa além do ffmpeg é bom, só quero que funcione.
Responder1
Acontece que é difícil de conseguir ou nem é possível. No entanto, é possível conseguir algo semelhante com a combinação de nginx
(com rtmp
módulo) e ffmpeg
. Na nginx
configuração (provavelmente localizado em /etc/nginx/nginx.conf
) a seção a seguir deve ser anexada para fazê-lo funcionar como rtmp
servidor (Com total acesso público. Tenha cuidado, a transmissão não é criptografada e qualquer pessoa capaz de acessar sua rede pode assisti-la):
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
allow play all;
}
}
}
Então, o streaming do arquivo de vídeo é tão fácil quanto invocar ffmpeg
assim:
ffmpeg -re -i video_file.mkv -c:v libx264 -f flv rtmp://host:1935/live
Por fim, quem quiser assistir à transmissão deve se conectar ao mesmo endereço do player de sua preferência:
rtmp://host:1935/live
Nota: host
aqui está o nome do host do servidor onde nginx
é lançado.
Responder2
resposta curta, você não pode, porque o icecast é um sistema de streaming de áudio, não um servidor de streaming de vídeo.
Responder3
Com obs funciona muito bem, mas ainda não tentei com o ffmpeg. E obs tem a vantagem de você fazer com que os controles do jogador busquem para frente e para trás. Eu segui este guia e é muito fácil:
https://www.braillealphabetsoup.com/icecast-video-streaming-with-obs.html