Я пытался сохранить аудиофайлы, например, встроенные в http://www.1242.com/ondemand/sugawara/130106sugawara.asx. ASF-файл - это mms://copper.jolf.jp/1242/sugawara/130106sugawara.asf. Я использую Windows 7 и 10 и несколько разных браузеров.

В VLC, если я делаю Open Network Stream, а затем Convert, он говорит "Streaming" около минуты, но ничего не делает, а затем говорит «Ваш вход не может быть открыт ...» Проверьте подробности в журнале. «В журнале написано« ошибка access_mms: данные не получены ». Я пробовал Dump Raw Input, и это тоже не удается.

Если я вставлю ссылку mms ... asf в IE, то аудиофайл будет воспроизводиться в проигрывателе Windows Media, но параметр «Сохранить как» в меню «Файл» будет недоступен. Если VLC является плагином браузера по умолчанию, то он не может передать файл.

Я нашел несколько предложений в разделе Как скопировать поток asx - желательно бесплатно, но ни один из них не работает. Orbit Downloader и SDP ничего не делают.

Возможно, это не имеет значения: в проигрывателе Windows Media мне удалось просмотреть свойства одного из этих аудиофайлов, и на вкладке "Права на использование мультимедиа" было сказано: "Этот файл не защищен".

ИЗМЕНЕНО ДЛЯ ДОБАВЛЕНИЯ:

Я все еще хотел бы найти ответ на этот вопрос. Между тем через два месяца я сам добился небольшого прогресса.

Я догадался, что веб-сайт может использовать RTSP, и поэтому я попытался использовать openRTSP в Linux. Следующая команда работала в том смысле, что она сохранила файл на моем диске. Этот файл (myFile) занимает 26 МБ, поэтому я думаю, что это может быть полный 26-минутный аудиофайл. Но я не могу определить формат файла и не могу воспроизвести его в VLC.

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

Может кто-нибудь помочь ??

Кстати, для openRTSP необходимо было использовать опцию -K, чтобы поддерживать соединение в активном состоянии (см. Здесь), а для работы этого параметра необходимо было вручную установить самую последнюю версию openRTSP (см. Здесь). Версия, доступная с использованием apt-get в Ubuntu, была бесполезна.

1 ответ1

0

Наконец-то я решил, как это сделать, используя ffmpeg. Процесс был следующим: откройте файл http ... asx в текстовом редакторе, скопируйте URL-адрес mms ... asf и замените mms на rtsp. Затем передайте URL в ffmpeg:

ffmpeg -rtsp_transport tcp \
-i rtsp://copper.jolf.jp/1242/sugawara/130106sugawara.asf myFile.mp3

Это загружает это и преобразовывает в mp3. Он работает на Ubuntu 16.04 с использованием ffmpeg версии 2.8.11-0ubuntu0.16.04.1. Другие платформы и версии, вероятно, тоже в порядке.

медлительность

Каждая секунда файла / потока занимает одну секунду для загрузки, поэтому она очень медленная.

Ближе к концу ffmpeg делает паузу на несколько минут, а затем продолжается и завершает работу правильно. С файлом / потоком выше загрузка всегда занимает 4 минуты и 12 секунд дольше, чем продолжительность файла. (Кто-нибудь может объяснить это или как этого избежать?)

Я думал, что можно было бы избежать паузы, используя -stimeout 10000 («установить тайм-аут ввода-вывода TCP в микросекундах»), но это не имело значения. Вы можете сделать -t -27:00 («прекратить запись вывода после того, как его длительность достигнет длительности»), но это не решает проблему.

Вот способ найти длительность файла без необходимости его потоковой передачи:

ffprobe -rtsp_transport tcp \
rtsp://copper.jolf.jp/1242/sugawara/130106sugawara.asf

Другие заметки

По той причине, почему -rtsp_transport tcp необходим, смотрите здесь.

Я рекомендую использовать -hide_banner чтобы сделать вывод ffmpeg более коротким.

Если вы хотите просто сохранить файл без конвертации, используйте -codec copy .

В какой-то момент я сделал эти команды:

sudo add-apt-repository ppa:mc3man/gstffmpeg-keep 
sudo apt-get update 
sudo apt-get install gstreamer0.10-ffmpeg

Но я не знаю, было ли это необходимо. Совет, которому я следовал, здесь ; Смотрите также здесь.

Я попробовал libav, которая похожа на ffmpeg и имеет много одинаковых опций. Но это было сложнее в использовании и не работает с опциями выше.

Почему другие решения не работают?

Сначала нужно было найти URL-адрес mms и заменить mms на rtsp.

Я думаю, что причина, по которой VLC и другие приложения не работали, заключалась в том, что файл / поток использует собственный кодек Windows Media Audio, который недоступен в этих приложениях.

При потоковой передаче в проигрывателе Windows Media свойства говорят, что аудиокодек - это Windows Media Audio V8, но когда вы используете ffmpeg, он говорит, что использует кодек wmav2. Похоже, что разработчики ffmpeg перепроектировали версию 2, а не версию 8, но обе версии совместимы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .