如何簡單實現 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 有點受不了,戴上耳機太沉浸了,會有“遐想”。