Open allayli opened 4 years ago
目前也遇到个问题,播放flv媒体流时hasAudio设置为false可以播放,但是设置为true或者不设置时就不显示画面,应该如何在createPlayer之前判断是否有声音?
目前也遇到个问题,播放flv媒体流时hasAudio设置为false可以播放,但是设置为true或者不设置时就不显示画面,应该如何在createPlayer之前判断是否有声音?
判断FLV文件头(也是整个文件的)的第5个字节,如果是0X05 (0000 0101)表示有音频有视频,如果0x04表示只有音频,0X01表示只有视频。具体的定义如下:
完整的FLV文件格式可以去https://www.adobe.com/content/dam/acom/en/devnet/flv/video_file_format_spec_v10.pdf
这里看
onMetaData里通常还有hasAudio的字段
希望官方尽快解决这个问题,因为视频中无音频数据时,往往会导致视频无法播放!
解决无音频流无法播放问题,以下截图为源码部分:
src/demux/flv-demuxer.js
src/core/transmuxing-controller.js
将overridedHasAudio中代码改为
欢迎各位积极讨论此方案,如有帮助赞一个哦(⊙o⊙)?
这个问题,是不是没解决,我也碰到了,没音频的视频放不出来,必须手动设置成hasAudio:false,但是我播放前并不知道是否有声音,这个需要怎么处理呢
1.如果直播流带音频流,hasAudio设置成false或者true都可以播放 2.如果直播流不带音频流,hasAudio如果设置成true,则无法播放
所以解决方案是根据flv.js判断的是否有音频流的标识再去判断是否重写hasAudio的属性
------------------ 原始邮件 ------------------ 发件人: "bilibili/flv.js" @.>; 发送时间: 2021年12月14日(星期二) 中午11:43 @.>; @.**@.>; 主题: Re: [bilibili/flv.js] 能不能自行判断flv视频是否有声音? (#493)
这个问题,是不是没解决,我也碰到了,没音频的视频放不出来,必须手动设置成hasAudio:false,但是我播放前并不知道是否有声音,这个需要怎么处理呢
— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.
这个问题,是不是没解决,我也碰到了,没音频的视频放不出来,必须手动设置成有音频:假的,但是我以前不知道有没有声音,这个需要怎么处理呢? 请问你现在解决了吗
解决无音频流无法播放问题,以下截图为源码部分: src/demux/flv-demuxer.js src/core/transmuxing-controller.js
将overridedHasAudio中代码改为
欢迎各位积极讨论此方案,如有帮助赞一个哦(⊙o⊙)?
只需要改overridedHasAudio中的代码吗 没有生效
我也遇到不生效的问题。打断点到probe方法里判断hasAudio那里,比较了其它无音频的flv流,发现是我这边的流的文件头有问题,错误地标记成有音频了,你可以比对下。
这多么年都没处理,真的是服
https://github.com/bilibili/flv.js/blob/8c1bed1245640deb51ec5545bc2f4e9080f01ded/src/demux/flv-demuxer.js#L386
前面加上
能不能这样判断flv视频是否有声音?