ffmpeg -rtsp_transport tcp \
-i rtsp://copper.jolf.jp/1242/sugawara/130106sugawara.asf myFile.mp3
Isso faz o download e converte para um mp3. Ele funciona no Ubuntu 16.04 usando o ffmpeg versão 2.8.11-0ubuntu0.16.04.1. Outras plataformas e versões provavelmente também estão OK.
Lentidão
Cada segundo do arquivo / stream leva um segundo para ser baixado, por isso é muito lento.
Perto do final, o ffmpeg faz uma pausa por vários minutos e depois continua e termina corretamente. Com o arquivo / stream acima, o download sempre leva 4 minutos e 12 segundos a mais do que a duração do arquivo. (Alguém pode explicar isso ou como evitá-lo?)
Eu pensei que seria possível evitar a pausa usando -stimeout 10000
("set socket TCP I / O timeout em microssegundos"), mas isso não fez diferença. Você pode fazer -t -27:00
("pare de gravar a saída depois que sua duração atingir a duração"), mas isso não resolve o problema.
Aqui está uma maneira de encontrar a duração do arquivo sem precisar transmiti-lo:
ffprobe -rtsp_transport tcp \
rtsp://copper.jolf.jp/1242/sugawara/130106sugawara.asf
Outras notas
Pelo motivo pelo qual -rtsp_transport tcp
é necessário, veja aqui .
Eu recomendo usar -hide_banner
para diminuir a saída do ffmpeg.
Se você quiser salvar o arquivo sem converter, use -codec copy
.
Em algum momento eu fiz estes comandos:
sudo add-apt-repository ppa:mc3man/gstffmpeg-keep
sudo apt-get update
sudo apt-get install gstreamer0.10-ffmpeg
Mas não sei se isso foi necessário. O conselho que eu estava seguindo é aqui ; veja também aqui .
Eu tentei libav , que é semelhante ao ffmpeg e tem muitas das mesmas opções. Mas foi mais difícil de usar e não funciona com as opções acima.
Por que outras soluções não funcionaram?
Primeiro foi necessário encontrar o URL mms e substituir o mms pelo rtsp.
Acho que o motivo pelo qual o VLC e outros aplicativos não funcionaram foi que o arquivo / fluxo usa um codec proprietário do Windows Media Audio que não está disponível nesses aplicativos.
Quando você faz stream no Windows Media Player, as propriedades dizem que o codec de áudio é o Windows Media Audio V8, mas quando você usa o ffmpeg ele diz que está usando o codec wmav2. Parece que os desenvolvedores ffmpeg reverteram a versão 2 e não a versão 8, mas as duas versões são compatíveis.