阅读 28

JB的测试之旅-上传的mp3文件播放不了

温馨提示:阅读时长约2分钟;

前言

公司是资讯类产品,因此后台采用了开源的编辑器供运营原创文章、上传图片、视频等,这不,运营上传完视频发布文章后,发现文章里面的音频播放不了;

而这,就是故事的开端;

image.png-13.1kB

跟进

抓包,获取音频链接

尝试在PC的Chrome上打开,发现不能打开;

image.png-28.8kB

心里寻思了一下:

  • 这功能之前运营就在使用,如果有问题,应该早就反馈了,为啥现在才反馈?
  • 之前运营大多数是上传mp4,这次mp3,会不会有关系?
  • 这次的文件大小稍微大点,10M,之前1、2M都没问题的;

因此有了几个怀疑点:

  • 研发最近是不是有改动过这块代码?
  • 验证下mp3、mp4是否都正常;
  • 文件大小是否也会有影响;

经过确认,上面说的3点都没关系;

比如同是mp3且都是10M,一个可以正常播放,而有问题的还是有问题:

没问题(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

心里郁闷啊!

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,如果感兴趣,可以点击这里去了解;

这件事情不难,只要是对音频有了解过的,可能就很快发现问题了,所以,知识广度还是有需要的,不一定需要精通,能解决问题就可以了;

最后,谢谢大家~

关注下面的标签,发现更多相似文章
评论