JB的測試之旅-上傳的mp3文件播放不了

舒適提示:閱讀時長約2分鐘;html

前言

公司是資訊類產品,所以後臺採用了開源的編輯器供運營原創文章、上傳圖片、視頻等,這不,運營上傳完視頻發佈文章後,發現文章裏面的音頻播放不了;nginx

而這,就是故事的開端; chrome

image.png-13.1kB

跟進

抓包,獲取音頻連接瀏覽器

嘗試在PC的Chrome上打開,發現不能打開; bash

image.png-28.8kB

內心尋思了一下:服務器

  • 這功能以前運營就在使用,若是有問題,應該早就反饋了,爲啥如今才反饋?
  • 以前運營大多數是上傳mp4,此次mp3,會不會有關係?
  • 此次的文件大小稍微大點,10M,以前一、2M都沒問題的;

所以有了幾個懷疑點:微信

  • 研發最近是否是有改動過這塊代碼?
  • 驗證下mp三、mp4是否都正常;
  • 文件大小是否也會有影響;

通過確認,上面說的3點都不要緊;編輯器

好比同是mp3且都是10M,一個能夠正常播放,而有問題的仍是有問題:ui

沒問題(10M)
https://img.51hjgt.com/attachment/pagemanage/20190522/1558490847849240.mp3

有問題(10M)
https://img.51hjgt.com/attachment/pagemanage/20190522/1558490919310761.mp3
複製代碼

image.png-7.9kB
image.png-6.3kB

內心鬱悶啊! spa

image.png-50.7kB

既然跟文件大小、格式都不要緊,那有沒可能上傳到服務器後致使音頻損壞之類的?又或者,跟nginx配置有不要緊?

而後去服務器下載該音頻,而後用Windows本地打開,發現能正常打開;

image.png-154kB
image.png-60kB

那就是說,上傳後文件也沒損壞,一切都很正常;

繼續嘗試,在手機上是否正常?

首先試試收集某克瀏覽器,能獲取到音頻長度,能正常播放:

image.png-52.6kB

那在微信上點擊試試,卻沒法正常播放;

image.png-61.5kB

首先說明,視頻是正常的,可是同時,百思不得其解,想不懂問題出在哪裏,根據上面的分析,感受都沒錯。。

若是非要說,感受就是這個音頻有問題,由於其餘mp3都正常,就這個有問題,可是,毫無證據。。

image.png-26.2kB

高人指點

尋思半天,實在沒轍,只能尋找高人,此處手動感謝@老羅,否則真搞不定;

老羅聽完以後,過段時間說,這Mp3格式有問題,而後就給了個截圖:

image.png-9.5kB

原來這音頻是wma格式,後面可能被改後綴,就一直覺得是mp3了,同時網上搜索chrome不能播放wma,發現你們都遇到這問題;

image.png-150.6kB

既然如此,那就把格式轉mp3試試看正常不,直接選擇格式工廠,轉換mp3,而後發現能夠正常播放了;

image.png-9.2kB

看吧,事情就完美解決了;

怎麼發現

問題雖然解決了,可是反思,爲啥Jb不會?而後就去問老羅大佬,大佬就說用FFmpeg看,而且丟了一個連接過來;

既然內容有了,就本身研究吧;

FFmpeg

第一次聽這玩意,只能Google了,FFmpeg官網連接

官網的描述是這樣的:

FFmpeg是一套能夠用來記錄、轉換數字音頻、視頻,並能將其轉化爲流的開源計算機程序。
採用LGPL或GPL許可證。它提供了錄製、轉換以及流化音視頻的完整解決方案。
複製代碼

打開官網後,會有大寫的download,各平臺都支持,感受還能夠;

Windows

對於Windows來講,不須要安裝,直接下載就是一個zip包,解壓後,在bin目錄下執行ffprobe.exe 音頻文件便可:

ffprobe.exe test.mp3
複製代碼

這樣就能看到這個文件的格式就是wma

image.png-126kB

經過gs工廠轉成mp3後,再查看,發現是真的改爲mp3,怪不得能夠播放了;

image.png-117.1kB

Linux

打開官網,直接選擇最新的下載,而後上傳服務器;

tar -xjvf ffmpeg-4.1.3.tar.bz2 
cd ffmpeg-4.1.3
./configure
複製代碼

此時會提示yasm未安裝的提示,yasm是一款彙編器,而且是徹底重寫了nasm的彙編環境,接收nasmgas語法,支持x86amd64指令集,那就安裝一波;

yum install yasm
複製代碼

而後繼續安裝ffmpeg

./configure
make
make install 
複製代碼

時間比較久,安裝完後,輸入ffmpeg,沒報錯就說明安裝成功了;

image.png-43.2kB

這時候,再把有wma視頻上傳去看看;

image.png-61.2kB

同樣的用法,沒問題;

小結

行吧,這裏只是簡單介紹下ffmpeg,若是感興趣,能夠點擊這裏去了解;

這件事情不難,只要是對音頻有了解過的,可能就很快發現問題了,因此,知識廣度仍是有須要的,不必定須要精通,能解決問題就能夠了;

最後,謝謝你們~

相關文章
相關標籤/搜索