как записать часть HLS потоковое аудио и загрузить его на YouTube в качестве аудио подкаста
эта "практическая" информация является руководством к тому, как мне удалось выполнить пять требований, связанных с этой задачей, которая сначала казалась трудной для достижения. Они перечислены ниже:
подкаст, который я хотел создать, состоит из получасового сегмента в середине 2,5-часовой радиопрограммы, которая может быть только в течение ограниченного периода (1 неделя) после даты трансляции трансляция с сайта радиостанции. Это поток HLS. Мои конкретные требования к этой задаче были:
1) мне нужно было сделать это с минимальным набором программных инструментов, желательно бесплатно и еще лучше, если с открытым исходным кодом. Те, которые я использовал, перечислены ниже.
2) Я хотел конвертировать аудио файл из m4a в mp3.
3) Я хотел отредактировать аудио, чтобы обрезать его на обоих концах и, возможно, также удалить некоторые биты между ними.
4) можно создать видеофайл (например, mp4) только с звуковой дорожкой и без видеотрека, но YouTube не будет принимать такой файл. Как минимум, YouTube требует, по крайней мере, одного неподвижного изображения, чтобы сопровождать звуковую дорожку.
5) сохранение аудиопотока в файл довольно легко, но файл должен будет пройти некоторую последующую обработку для шагов 2-4, и просто загрузить 2,5-часовой аудиофайл в редактор может быть довольно трудоемким, поэтому в идеале было бы предпочтительнее просто загрузить получасовой сегмент посередине, который я хотел. Этот сегмент начинается во время ~1: 34: 00.
программное обеспечение я использовал, перечислены ниже. (Существует четыре пункта.)
Примечание: хотя некоторые из этого программного обеспечения является кросс-платформенным, я сделал это все на Windows 7 и Firefox веб-браузер 53.0.2.) Я не могу гарантировать результаты на других платформах, и некоторые из приведенных ниже инструкций могут потребовать незначительных изменений для другие обозреватели.
проверьте папку, в которой установлен FFmpeg. Если он не содержит файл с именем ff-prompt.летучая мышь, создать один (это текстовый файл), следуя инструкциям Максима здесь:
https://disqus.com/home/discussion/mrfdev/ffmpeg_command_generator/newest/#comment-3264465301
в этом руководстве я буду использовать пример веб-сайта и аудиопотока, над которым я работал. YMMV, если вы пытаетесь это с другим источником звука.
радиопрограмма: ABC Radio Melbourne: "утро с Джоном Фейном"
Существует список прошлых эпизодов этого шоу здесь:
http://www.abc.net.au/radio/melbourne/programs/mornings/episodes/%20(http://www.abc.net.au/radio/melbourne/programs/mornings/episodes/)
те, которым не более недели, являются потоковыми. (Потоковая передача может быть гео-заблокирован в некоторых странах.)
процедура:
(Это разделено на три части: загрузка, редактирование и создание видео)
(1) СКАЧАТЬ АУДИО:
на веб-странице прошлых эпизодов найдите соответствующую программу и нажмите ссылку, чтобы перейти на страницу этой программы, где вы увидите проигрыватель со значком воспроизведения с надписью "Listen."
то, что вам нужно сейчас список воспроизведения потоковой передачи для этого аудио содержание. Существует два способа получить это: самый простой способ (метод a ниже) - использовать расширение для браузера VDH. Если у вас его нет, используйте метод б ниже.
метод () (используйте это, если у вас есть расширение для браузера VDH упомянутых выше):
- нажмите на значок воспроизведения, чтобы начать трансляцию,
дождитесь начала воспроизведения звука. Когда это произойдет,
щелкните значок VDH, чтобы открыть его меню.
на панели VDH наведите курсор мыши на интересующий объект.
Справа появится стрелка вправо.
нажмите стрелку вправо справа от этого пункта и выберите "Копировать URL"
(копирует URL-адрес носителя в буфер обмена.)
вы сейчас можете закрыть страницу с плеером.
URL будет похож на это:
http://abcradiomodhls.abc-cdn.net.au/i/local_melbourne/audio/abf-2017-05-16.m4a/index_0_a.m3u8?null=0
- откройте новую вкладку браузера, вставьте медиа URL в адресную строку браузера и перейдите по этому адресу.
продолжить на (c)ниже.
метод (b)
(Используйте этот метод, если у вас нет расширения браузера VDH.)
открыть HTML-код для веб-страницы с плеером.
(для этого в Firefox, щелкните правой кнопкой мыши на пустой области страницы
и выберите " Просмотр источника страницы.")
исходный код HTML для этой веб-страницы должен открываться на новой вкладке браузера.
он будет содержать три строки, подобные этой:
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=130000,CODECS="mp4a.40.2",CLOSED-CAPTIONS=NONE
http://abcradiomodhls.abc-cdn.net.au/i/local_melbourne/audio/abf-2017-05-16.m4a/index_0_a.m3u8?null=0
третья строка-URL.
- скопируйте его и вставьте в адресную строку браузера,
и отправляйся по этому адресу.
(c) продолжить с (a) или (b) выше:
открывается диалоговое окно "открыть/сохранить файл" для файла с именем index_0_a.m3u8.
что типа файл-это обычный текстовый файл, содержащий аудио воспроизведения, который говорит игрокам, где расположены файлы мультимедиа.
- открыть файл в текстовом редакторе.
его содержимое будет выглядеть примерно так:
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-ALLOW-CACHE:YES
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:10.000,
http://abcradiomodhls.abc-cdn.net.au/i/local_melbourne/audio/abf-2017-05-16.m4a/segment1_0_a.ts?null=0
#EXTINF:10.000,
http://abcradiomodhls.abc-cdn.net.au/i/local_melbourne/audio/abf-2017-05-16.m4a/segment2_0_a.ts?null=0
... <snip> ... (for a 2.5-hour stream, there will be about 900 pairs of lines here)
#EXTINF:8.997 http://abcradiomodhls.abc-cdn.net.au/i/local_melbourne/audio/abf-2017-05-16.m4a/segment900_0_a.ts?null=0
#EXT-X-ENDLIST
приведенный выше файл содержит URL-адреса для 900, 10-секундных аудио сегментов, пронумерованных от 1 до 900. Для каждого сегмента есть пара строк:
первая строка в каждой паре состоит из текста: "#EXTINF:10.000".
вторая строка в каждой паре содержит URL сегмента аудио.
теперь в текстовом редакторе вы удалите перечисленные ниже сегменты, удалив пару строк для каждого удаляемого сегмента.
- удалить сегменты от 1 до 563 (т. е. первые ~94 минуты)
- удалить сегменты с 834 по 900. (последние 11 минут)
(будьте осторожны, чтобы оставить нетронутыми последнюю строку чтения: #EXT-X-ENDLIST)
это оставляет 270 сегментов посередине (45 минут, начиная с ~1: 34: 00.)
- сохранить отредактированный файл, скажем, m3u8 форматов А.
(d) теперь вы будете использовать VLC для потоковой передачи желаемого аудио отрывка и сохранить его в виде файла MP3.
открыть VLC media player, и в меню VLC:
- нажмите: "медиа", затем "Конвертировать/Сохранить..."
в разделе "Открытые медиа" диалоговое окно, на вкладке Файл,
- нажмите кнопку "Добавить"
в диалоговом окне Выбор файлов,
- найти и выбрать файл m3u8 форматов А.,
вернуться в диалоговое окно "открыть медиа",
- нажмите кнопку "Конвертировать/Сохранить"
в диалоговом окне "конвертировать",
в "сохранить файл... диалоговое окно",
вернуться в диалоговое окно "конвертировать",
VLC будет (молча) передавать мультимедиа и сохранять его в виде файла MP3.
(при этом ползунок времени действует как индикатор выполнения.)
(2) РЕДАКТИРОВАТЬ АУДИО:
при необходимости отредактируйте MP3 в вашем любимом аудиоредакторе, чтобы обрезать его в начале и в конце, и/или удалить ненужные биты из середины, а затем экспортировать отредактированную версию в качестве нового MP3. Я использовал смелость, чтобы сделать это. Объяснение того, как это сделать в Audacity, выходит за рамки этой статьи. Хорошей новостью является то, что при редактировании плейлиста в части 1 получился достаточно точный фрагмент аудиопотока, который вы хотите сохранить, может оказаться ненужным.
(3) ОБЪЕДИНИТЬ ИЗОБРАЖЕНИЕ И АУДИО В ВИДЕО:
этот метод использует FFmpeg. Это исходит от Эда Манна. Более подробно это объясняется здесь:
http://eddmann.com/posts/uploading-podcast-audio-to-youtube/
в этом примере предполагается, что FFmpeg установлен в C:\Apps\FFmpeg.
скопируйте аудиофайл и файл jpg для изображения, которое вы хотите отобразить в видеотреке в в C:\Apps\FFmpeg\bin папку. Назовите их входными данными.mp3 и изображение.jpg
открыть командная строка и введите три команды, перечисленные ниже:
строка 1 делает папку, содержащую FFmpeg текущей Директорией.
строка 2 запускает командный файл FF-prompt.летучая мышь.
строка 3 передает FFmpeg специальную команду, которая позволяет объединить два файла в видеофайл с именем Output.mkv. Если вы предпочитаете выходной файл должен быть MP4, просто измените последние три буквы в строке 3.
CD "C:\Apps\FFmpeg"
FF-prompt.bat
ffmpeg -loop 1 -r 2 -i image.jpg -i input.mp3 -vf scale=-1:380 -c:v libx264 -preset slow -tune stillimage -crf 18 -c:a copy -shortest -pix_fmt yuv420p -threads 0 output.mkv
дождитесь завершения команды. Когда это произойдет, ваш файл будет готов для загрузки на YouTube. Вы найдете его в подпапке" bin", где установлен FFmpeg. (В данном примере это будет в: C:\Apps\FFmpeg\bin.)
вот пример результата:
https://www.youtube.com/watch?v=k01yREFsYTs