舒适提示:阅读时长约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
,若是感兴趣,能够点击这里去了解;
这件事情不难,只要是对音频有了解过的,可能就很快发现问题了,因此,知识广度仍是有须要的,不必定须要精通,能解决问题就能够了;
最后,谢谢你们~