我将发布一份操作指南来回答这个问题。它将演示如何完成上述任务,同时满足最初看似难以实现的五个要求:
我需要使用一组最少的软件工具来完成此操作,最好是免费的,如果是开源的就更好了。我使用的软件工具如下所列。
我想将音频文件从 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 上进行的。)我无法保证在其他平台上的结果,并且下面的一些说明可能需要针对其他浏览器进行轻微修改。
垂直脱氢酶(Firefox 扩展:Video DownloadHelper 6.3.1。)(也可用于 Chrome 浏览器。)
VLC 媒体播放器2.2.4
大胆2.1.2
FFmpeg
检查安装 FFmpeg 的文件夹。如果它不包含名为 ff-prompt.bat 的文件,请按照 Maxime 在此处给出的说明创建一个(它是一个文本文件):
https://disqus.com/home/discussion/mrfdev/ffmpeg_command_generator/newest/#comment-3264465301
在本指南中,我将使用我曾经处理过的网站和音频流作为示例。如果您尝试使用其他音频源,则可能有所不同。
广播节目是:ABC 墨尔本电台:“与乔恩·费恩共度的早晨”以下是该节目往期剧集的列表:
http://www.abc.net.au/radio/melbourne/programs/mornings/episodes/%20(http://www.abc.net.au/radio/melbourne/programs/mornings/episodes/)
那些发布时间不超过一周的视频都可以在线观看。(在某些国家/地区,在线观看可能会受到地理限制。)
程序: (分为三个部分:下载、编辑和创建视频)
(1)下载音频:
在往期剧集网页上,找到相关节目并点击链接进入该节目的页面,您将在那里看到一个播放器,上面有一个标有“收听”的播放图标。
你现在需要的是流媒体播放列表获取此音频内容。有两种方法可以获取此内容:简单的方法(下面的方法 a)是使用浏览器扩展 VDH。如果您没有,请使用下面的方法 b。
方法(a)(如果您有浏览器扩展程序,请使用此功能垂直脱氢酶上文提到的):
- 点击播放图标开始直播,
等待音频开始播放。播放完成后,
单击 VDH 图标以打开其菜单。
在 VDH 面板中,将鼠标光标悬停在感兴趣的项目上。其右侧会出现一个向右箭头。
单击该项目右侧的右箭头,然后选择“复制 URL”
(这会将媒体 URL 复制到剪贴板。)
您现在可以关闭包含该播放器的网页。
URL 将类似于以下内容:
- 打开一个新的浏览器选项卡并将媒体 URL 粘贴到网络浏览器的地址栏中并转到该地址。
继续下面的(c)。
方法(b) (如果您没有 VDH 浏览器扩展,请使用此方法。)
打开包含播放器的网页的源 HTML。
(要在 Firefox 中执行此操作,请右键单击页面的空白区域并选择“查看页面源代码”。)
该网页的 HTML 源代码应在新浏览器选项卡中打开。
使用网络浏览器的查找功能来查找类似如下的一行:
“网址”:”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
上述文件包含 900 个 10 秒音频片段的 URL,编号为 1 到 900。每个片段都有一对行:
每对的第一行由文本组成:“#EXTINF:10.000”。
每对中的第二行包含音频片段的 URL。
现在,在文本编辑器中,您将通过删除要删除的每个段的一对行来删除下面列出的段。
- 删除 1 至 563 段(即前 ~94 分钟)
- 删除第 834 至 900 段(最后 11 分钟)
(请注意保留最后一行内容:#EXT-X-ENDLIST)
这样中间就剩下 270 个片段(从 ~1:34:00 开始的 45 分钟)。
- 将编辑后的文件另存为,例如,答案:
(d)您现在将使用 VLC 流式传输所需的音频摘录并将其保存为 MP3 文件。
打开 VLC 媒体播放器,然后在 VLC 菜单中:
- 点击:“媒体”,然后点击“转换/保存...”
在“打开媒体”对话框的“文件”选项卡中,
- 点击“添加”
在选择文件对话框中,
- 查找并选择文件答案:,
返回“打开媒体”对话框,
- 点击“转换/保存”
在“转换”对话框中,
在“配置文件”中选择“音频 - MP3”,
在“目标文件:”单击“浏览”
在“保存文件...”对话框中,
浏览到所需文件夹并输入 mp3 文件的文件名,
点击“保存”
返回“转换”对话框,
- 点击“开始”。
VLC 将(静默地)流式传输媒体并将其保存为 MP3 文件。
(在执行此操作时,时间滑块充当进度条。)
(2)编辑音频:
如果有必要,请在您最喜欢的音频编辑器中编辑 MP3,以修剪开头和结尾,和/或从中间删除不需要的部分,然后将编辑后的版本导出为新的 MP3。我使用 Audacity 来执行此操作。如何在 Audacity 中执行此操作的解释超出了本文的范围。好消息是,如果第 1 部分中播放列表的编辑导致您想要保存的音频流部分的摘录足够精确,则此步骤可能没有必要。
(3)将图像和音频合并成视频:
此方法使用 FFmpeg。它来自 Ed Mann。这里更详细地解释了这一点:
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 了。您会在安装 FFmpeg 的“bin”子文件夹中找到它。(在此示例中,它将位于:C:\Apps\FFmpeg\bin。)
以下是示例结果:
https://www.youtube.com/watch?v=k01yREFsYTs