舒適提示:閱讀時長約2分鐘;html
公司是資訊類產品,所以後臺採用了開源的編輯器供運營原創文章、上傳圖片、視頻等,這不,運營上傳完視頻發佈文章後,發現文章裏面的音頻播放不了;nginx
而這,就是故事的開端; chrome
抓包,獲取音頻連接;瀏覽器
嘗試在PC的Chrome上打開,發現不能打開; bash
內心尋思了一下:服務器
所以有了幾個懷疑點:微信
通過確認,上面說的3點都不要緊;編輯器
好比同是mp3且都是10M,一個能夠正常播放,而有問題的仍是有問題:ui
沒問題(10M)
https://img.51hjgt.com/attachment/pagemanage/20190522/1558490847849240.mp3
有問題(10M)
https://img.51hjgt.com/attachment/pagemanage/20190522/1558490919310761.mp3
複製代碼
內心鬱悶啊! spa
既然跟文件大小、格式都不要緊,那有沒可能上傳到服務器後致使音頻損壞之類的?又或者,跟nginx配置有不要緊?
而後去服務器下載該音頻,而後用Windows本地打開,發現能正常打開;
那就是說,上傳後文件也沒損壞,一切都很正常;
繼續嘗試,在手機上是否正常?
首先試試收集某克瀏覽器,能獲取到音頻長度,能正常播放:
那在微信上點擊試試,卻沒法正常播放;
首先說明,視頻是正常的,可是同時,百思不得其解,想不懂問題出在哪裏,根據上面的分析,感受都沒錯。。
若是非要說,感受就是這個音頻有問題,由於其餘mp3都正常,就這個有問題,可是,毫無證據。。
尋思半天,實在沒轍,只能尋找高人,此處手動感謝@老羅,否則真搞不定;
老羅聽完以後,過段時間說,這Mp3格式有問題,而後就給了個截圖:
原來這音頻是wma格式,後面可能被改後綴,就一直覺得是mp3了,同時網上搜索chrome不能播放wma,發現你們都遇到這問題;
既然如此,那就把格式轉mp3試試看正常不,直接選擇格式工廠,轉換mp3,而後發現能夠正常播放了;
看吧,事情就完美解決了;
問題雖然解決了,可是反思,爲啥Jb不會?而後就去問老羅大佬,大佬就說用FFmpeg
看,而且丟了一個連接過來;
既然內容有了,就本身研究吧;
第一次聽這玩意,只能Google了,FFmpeg官網連接;
官網的描述是這樣的:
FFmpeg是一套能夠用來記錄、轉換數字音頻、視頻,並能將其轉化爲流的開源計算機程序。
採用LGPL或GPL許可證。它提供了錄製、轉換以及流化音視頻的完整解決方案。
複製代碼
打開官網後,會有大寫的download
,各平臺都支持,感受還能夠;
對於Windows來講,不須要安裝,直接下載就是一個zip包,解壓後,在bin
目錄下執行ffprobe.exe 音頻文件
便可:
ffprobe.exe test.mp3
複製代碼
這樣就能看到這個文件的格式就是wma
:
經過gs工廠轉成mp3
後,再查看,發現是真的改爲mp3
,怪不得能夠播放了;
打開官網,直接選擇最新的下載,而後上傳服務器;
tar -xjvf ffmpeg-4.1.3.tar.bz2
cd ffmpeg-4.1.3
./configure
複製代碼
此時會提示yasm
未安裝的提示,yasm
是一款彙編器,而且是徹底重寫了nasm
的彙編環境,接收nasm
和gas
語法,支持x86
和amd64
指令集,那就安裝一波;
yum install yasm
複製代碼
而後繼續安裝ffmpeg
:
./configure
make
make install
複製代碼
時間比較久,安裝完後,輸入ffmpeg
,沒報錯就說明安裝成功了;
這時候,再把有wma
視頻上傳去看看;
同樣的用法,沒問題;
行吧,這裏只是簡單介紹下ffmpeg
,若是感興趣,能夠點擊這裏去了解;
這件事情不難,只要是對音頻有了解過的,可能就很快發現問題了,因此,知識廣度仍是有須要的,不必定須要精通,能解決問題就能夠了;
最後,謝謝你們~