Как я могу записать часть аудио в формате HLS и загрузить его на YouTube в качестве аудиоподкаста
Я буду публиковать руководство как ответ на этот вопрос. Он продемонстрирует, как выполнить вышеупомянутую задачу, и в то же время выполнить пять требований, которые на первый взгляд казались трудными для выполнения:
Мне нужно было сделать это с минимальным набором программных инструментов, желательно бесплатных и даже лучше, если с открытым исходным кодом. Те, которые я использовал, перечислены ниже.
Я хотел конвертировать аудиофайл из m4a в mp3.
Я хотел отредактировать аудио, чтобы обрезать его с обоих концов и, возможно, также удалить некоторые биты между ними.
Можно создать видеофайл (например, mp4), содержащий только аудиодорожку и без видеодорожки, но YouTube не примет такой файл. Как минимум, YouTube требуется как минимум одно неподвижное изображение для сопровождения звуковой дорожки.
Сохранение аудиопотока в файл довольно простое, но файл должен пройти некоторую последующую обработку для шагов 2-4, и простая загрузка 2,5-часового аудиофайла в редактор может занять довольно много времени, поэтому в идеале это будет предпочтительнее просто скачать получасовой сегмент посередине, который я хотел. Этот сегмент начинается во время ~1:34:00.
1 ответ
Как записать часть аудио в формате 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.) Я не могу гарантировать результаты на других платформах, а некоторые из приведенных ниже инструкций может потребоваться небольшая модификация для других браузеров.
VDH (расширение Firefox: Video DownloadHelper 6.3.1.) (Также доступно для браузера Chrome.)
VLC Media Player 2.2.4
Audacity 2.1.2
FFmpeg
Проверьте папку, в которой установлен FFmpeg. Если он не содержит файл с именем ff-prompt.bat, создайте его (это текстовый файл), следуя инструкциям, данным Maxime здесь:
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) СКАЧАТЬ АУДИО:
На странице прошлых эпизодов найдите соответствующую программу и нажмите на ссылку, чтобы перейти на страницу этой программы, где вы увидите проигрыватель со значком воспроизведения с надписью "Прослушать".
Теперь вам нужен потоковый плейлист для этого аудио контента. Есть два способа получить это: Самый простой способ (метод ниже) - использовать расширение браузера VDH. Если у вас его нет, используйте метод б ниже.
Метод (а) (используйте это, если у вас есть расширение браузера VDH, упомянутое выше):
- Нажмите на значок воспроизведения, чтобы начать поток,
Подождите, пока аудио не начнет играть. Когда это произойдет,
Нажмите значок VDH, чтобы открыть его меню.
На панели VDH наведите курсор мыши на интересующий элемент. Справа появится стрелка вправо.
Нажмите стрелку вправо от этого элемента и выберите "Копировать URL".
(Это копирует URL-адрес мультимедиа в буфер обмена.)
Теперь вы можете закрыть веб-страницу, содержащую плеер.
URL будет похож на это:
- Откройте новую вкладку браузера, вставьте URL-адрес мультимедиа в адресную строку веб-браузера и перейдите по этому адресу.
Продолжайте в (с) ниже.
Метод (б)(Используйте этот метод, если у вас нет расширения браузера VDH.)
Откройте исходный HTML-код для веб-страницы, содержащей проигрыватель.
(Чтобы сделать это в Firefox, щелкните правой кнопкой мыши пустую область страницы и выберите "View Source Source".)
Исходный код HTML для этой веб-страницы должен открыться в новой вкладке браузера.
Используйте функцию поиска вашего веб-браузера, чтобы найти строку, подобную этой:
"url": " http://abcradiomodhls.abc-cdn.net.au/i/local_melbourne/audio/abf-2017-05-16.m4a/master.m3u8",
Выберите часть этой строки между вторым набором двойных кавычек.
Щелкните правой кнопкой мыши по выделению и выберите "Открыть ссылку".
Откроется диалоговое окно открытия / сохранения файла для файла с именем master.m3u8.
Загрузите файл.
Откройте файл master.m3u8 в текстовом редакторе.
Он будет содержать три строки, похожие на это:
#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.)
- Сохраните отредактированный файл как, скажем, A.m3u8
(d) Теперь вы будете использовать VLC для потоковой передачи желаемого звукового фрагмента и сохранения его в виде файла MP3.
Откройте медиаплеер VLC и в меню VLC:
- нажмите: "Медиа", затем "Конвертировать / Сохранить..."
В диалоговом окне "Открыть мультимедиа" на вкладке "Файл"
- нажмите "Добавить"
В диалоговом окне выбора файлов
- найти и выбрать файл A.m3u8,
Вернитесь в диалоговое окно "Open Media",
- нажмите "Конвертировать / Сохранить"
В диалоговом окне "Конвертировать"
в "Профиле" выберите "Аудио - MP3",
в "Файл назначения:" нажмите "Обзор"
В диалоговом окне "Сохранить файл..."
перейдите к нужной папке и введите имя файла mp3,
нажмите "Сохранить"
Вернувшись в диалоговое окно "Конвертировать",
- нажмите "Пуск".
VLC будет (беззвучно) передавать поток мультимедиа и сохранять его в виде файла MP3.
(При этом бегунок времени действует как индикатор выполнения.)
(2) РЕДАКТИРОВАТЬ АУДИО:
При необходимости отредактируйте MP3 в своем любимом аудиоредакторе, чтобы обрезать его в начале и в конце и / или удалить ненужные биты из середины, а затем экспортируйте отредактированную версию как новый MP3. Я использовал Audacity, чтобы сделать это. Объяснение того, как это сделать в Audacity, выходит за рамки этой статьи. Хорошая новость заключается в том, что если редактирование списка воспроизведения в части 1 привело к достаточно точному фрагменту части аудиопотока, который вы хотели сохранить, этот шаг может быть ненужным.
(3) СОЧЕТАТЬ ИЗОБРАЖЕНИЕ И АУДИО В ВИДЕО:
Этот метод использует FFmpeg. Это происходит от Эда Манна. Это объясняется более подробно здесь:
http://eddmann.com/posts/uploading-podcast-audio-to-youtube/
В этом примере предполагается, что FFmpeg установлен в C:\Apps\FFmpeg.
Скопируйте аудиофайл и файл jpg для изображения, которое вы хотите отобразить на видеодорожке, в папку C:\Apps\FFmpeg\bin. Назовите их input.mp3 и image.jpg
Откройте командную строку и введите три команды, перечисленные ниже:
Строка 1 делает папку, содержащую FFmpeg текущим каталогом.
В строке 2 запускается командный файл FF-prompt.bat.
Строка 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