Como salvar o arquivo de áudio asf / asx / mms em disco (as sugestões anteriores não funcionam)

0

Eu tenho tentado salvar arquivos de áudio como o incorporado no link . O arquivo ASF é mms: //copper.jolf.jp/1242/sugawara/130106sugawara.asf. Eu estou usando o Windows 7 e 10 e vários navegadores diferentes.

No VLC, se eu abrir Open Network Stream, em seguida, converter, ele diz "Streaming" por cerca de um minuto, mas não faz nada e diz "Sua entrada não pode ser aberta ... Verifique o log para mais detalhes." O log diz "erro access_mms: nenhum dado recebido". Eu tentei Dump Raw Input e isso falha também.

Se eu colar o link mms ... asf no IE, o arquivo de áudio será transmitido no Windows Media Player, mas a opção Salvar como no menu Arquivo ficará esmaecida. Se o VLC for o plugin padrão do navegador, ele não conseguirá transmitir o arquivo.

Encontrei algumas sugestões em Como ripar um fluxo asx - de preferência livre mas nenhum deles funciona. Orbit Downloader e SDP não fazem nada.

Talvez irrelevante: no Windows Media Player, consegui examinar as propriedades de um desses arquivos de áudio, e a guia Direitos de Uso de Mídia disse "Este arquivo não está protegido".

EDITADO PARA ADICIONAR:

Eu ainda gostaria de encontrar uma resposta para essa pergunta. Entretanto, depois de dois meses, programei-me um pouco.

Eu acho que o site pode estar usando o RTSP e tentei usar o openRTSP no Linux. O seguinte comando funcionou no sentido de que salvou um arquivo no meu disco. Este arquivo (myFile) é 26MB e, portanto, acho que pode ser o arquivo de áudio completo de 26 minutos. Mas não consigo descobrir o formato do arquivo e não consigo reproduzi-lo no VLC.

openRTSP -a -S 0 -K -n -t rtsp://copper.jolf.jp/1242/sugawara/130106sugawara.asf > myFile

Alguém pode ajudar ??

Aliás, com o openRTSP foi necessário usar a opção -K para manter a conexão ativa (consulte aqui ), e para esta opção funcionar, foi necessário instalar manualmente a versão mais atualizada do openRTSP (veja aqui ). A versão disponível usando o apt-get no Ubuntu não era boa.

    
por user1310503 11.10.2016 / 13:12

1 resposta

0
Finalmente, resolvi como fazer isso usando o ffmpeg . O processo foi: abra o arquivo http ... asx em um editor de texto, copie o URL mms ... asf e substitua mms por rtsp. Em seguida, passe o URL para o ffmpeg:

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.

    
por 17.04.2017 / 16:49