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

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

前言

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

而这,就是故事的开端;

跟进

抓包,获取音频链接

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

心里寻思了一下:

  • 这功能之前运营就在使用,如果有问题,应该早就反馈了,为啥现在才反馈?
  • 之前运营大多数是上传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
复制代码

心里郁闷啊!

既然跟文件大小、格式都没关系,那有没可能上传到服务器后导致音频损坏之类的?又或者,跟nginx配置有没关系?

然后去服务器下载该音频,然后用Windows本地打开,发现能正常打开;

那就是说,上传后文件也没损坏,一切都很正常;

继续尝试,在手机上是否正常?

首先试试收集某克浏览器,能获取到音频长度,能正常播放:

那在微信上点击试试,却无法正常播放;

首先说明,视频是正常的,但是同时,百思不得其解,想不懂问题出在哪里,根据上面的分析,感觉都没错。。

如果非要说,感觉就是这个音频有问题,因为其他mp3都正常,就这个有问题,但是,毫无证据。。

高人指点

寻思半天,实在没辙,只能寻找高人,此处手动感谢@老罗,不然真搞不定;

老罗听完之后,过段时间说,这Mp3格式有问题,然后就给了个截图:

原来这音频是wma格式,后面可能被改后缀,就一直以为是mp3了,同时网上搜索chrome不能播放wma,发现大家都遇到这问题;

既然如此,那就把格式转mp3试试看正常不,直接选择格式工厂,转换mp3,然后发现可以正常播放了;

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

怎么发现

问题虽然解决了,但是反思,为啥Jb不会?然后就去问老罗大佬,大佬就说用FFmpeg看,并且丢了一个链接过来;

既然内容有了,就自己研究吧;

FFmpeg

第一次听这玩意,只能Google了,FFmpeg官网链接

官网的描述是这样的:

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。
采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。
复制代码

打开官网后,会有大写的download,各平台都支持,感觉还可以;

Windows

对于Windows来说,不需要安装,直接下载就是一个zip包,解压后,在bin目录下执行ffprobe.exe 音频文件即可:

ffprobe.exe test.mp3
复制代码

这样就能看到这个文件的格式就是wma

通过gs工厂转成mp3后,再查看,发现是真的改成mp3,怪不得可以播放了;

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,没报错就说明安装成功了;

这时候,再把有wma视频上传去看看;

一样的用法,没问题;

小结

行吧,这里只是简单介绍下ffmpeg,如果感兴趣,可以点击这里去了解;

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

最后,谢谢大家~

转载于:https://juejin.im/post/5ce637c26fb9a07efa08f0a0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值