如何简单实现 FLV 转 MP3
FLV 是目前网络上主流的视频格式,大多数在线视频网站都采用此视频格式,由于视频资源的音频无法直接下载到,最好的办法就是将其转换成 MP3 音频格式。
需求背景
一同事神秘兮兮的问我,能不能帮他从 B 站下载视频并转成 MP3,好在手机上听。这就奇怪了,B 站不是主打视频吗,要听音乐也有很多音乐平台呀?这时候他不说话,直接把钛媒体的一篇文章发给我,《这一届失眠的年轻人,在B站听ASMR》,我留意了一下,原来博客园也有转载这篇文章。
戴上耳机,在B站搜索“助眠”,即可进入一个全新的世界。
列表中清一色的ASMR助眠视频,播放量最高的达到了794.8万,获得20000投币。而这个热度最高的视频,搬运自海外平台。制作者是在Youtube上拥有214万粉丝的韩国主播PPOMO。
在长达44分钟的视频中,PPOMO先后展现了口腔音、敲击音、触发音等常见的ASMR类型。PPOMO的视频,几乎代表着目前ASMR制作者的最高水平。因此即使她从不在视频中露脸,熟悉ASMR的人也能靠声音辨认她。
ASMR(英语:Autonomous sensory meridian response,缩写ASMR),即自发性知觉经络反应,意思是指人体通过视、听、触、嗅等感知上的刺激,在颅内、头皮、背部或身体其他部位产生的令人愉悦的独特刺激感,又名耳音、颅内高潮等。
嗯,原来是助眠的,刷新了我的认知,在之前只知道白噪音助眠。不过,助眠就助眠嘛,为什么那么“猥琐”呢?再次恍然大悟,ASMR 有“性暗示”嫌疑。我在 B 站以 ASMR 作为关键词搜索,结果为零,听说是被屏蔽了。我找到 PPOMO 的 ASMR 视频,发现评论区有人说,在 QQ 群,微信公众号有打擦边球的“骚叫”。所以我明白同事的处境了,而且还担心遭遇全部下架,得让我赶紧下载下来。
2014年左右,Youtube上兴起ASMR视频创作的同时,这种新事物也传入了国内。不过发展4年后,ASMR直播就因为涉及“性暗示”被全网下架。
FLV 转 MP3
明白了来龙去脉,开始想办法如何实现 FLV 转 MP3。但,我的同事,是不是自己的事情自己干好呢?中文环境下,有事百度一下嘛,通常都能解决的呀。于是,他在百度经验里找是找到了一篇转换的文章,《flv转mp3教程》但还是觉得麻烦。而在线转换的又有文件大小限制,好像最大不能超过 100 MB。好吧,我看看用摸鱼时间能不能帮你搞定吧。
但,在我的知识储备里好像没有能处理的,只依稀记得 Python 视频库 MoviePy ,既然是处理视频,MoviePy 应该能帮上忙吧。于是,想着短平快,就不直接看官方文档了,也走下搜索吧,果然在 simply-python 发现了一篇文章《Downloading YouTube Videos and converting to MP3》,几乎是开箱即用。我的同事,你的需求有着落了。
文中提到下载视频可以用 PyTube 库,但我已经下载好了。只需从 FLV 视频文件中提取音频文件即可,也即 FLV 转 MP3。这个需求用 MoviePy 实现起来比较简单,也简单记录一下。
安装 MoviePy,
pip install moviepy
开始转换,
import moviepy.editor as mp
clip = mp.AudioFileClip(r'E:\Download\PPOMO.flv') # 替换实际路径
clip.write_audiofile(r'E:\Download\PPOMO.mp3') # 替换实际路径
稍等片刻,大功告成。已经成功生成 PPOMO.mp3 文件。
原来接近 400 MB 的 FLV 视频文件转换为 MP3 文件后只有 40.4 MB,大概是十分之一吧。
发送到手机(Android)
转换完毕,正式交付 MP3 文件给同事。不过出现了一点小插曲,我分别用微信,QQ 发送给他,传输是没问题,只是只能在微信或 QQ 里播放,显示“QQ 浏览器文件服务器”字样。本地播放器无法识别 MP3 文件。这时候就不必去细究了,因为我知道还有其他简单的办法,如网盘,或更直接点,就是在我本机启动一个 Web 服务器,浏览器访问下载即可,如:
http-server -a
小结
功能实现不复杂,只是 Python 视频处理库 MoviePy 的简单应用。主要是 ASMR ,“仿人耳麦克风”,对我来说都是新奇趣致的,不能说是活久见,更应该说是孤陋寡闻吧,2014 年的产物,现在都 2020 年了,6 年后我才有所耳闻。不过说要助眠,白噪音、环境音对于我来说更有效,亦即煲耳机的声音更适合我,譬如咖啡馆噪音,办公室噪音,自然风雨声等。ASMR 有点受不了,戴上耳机太沉浸了,会有“遐想”。