html5 video 直播流无声音,H5使用Video标签上传视频有声音无画面的解决方案

前端使用HTML5 Video标签播放MP4视频遇到只有声音无画面的问题,原因是不支持MPEG4编码。通过检测视频编码并使用ffmpeg工具进行转码解决。提供了一段Java代码示例,用于检测和转换MP4文件的视频编码,同时提到通过读取进程输入和错误流可以缩短等待时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前端用H5的Video标签做了播放器,部分mp4文件上传成功后只有声音而没有画面,经过了解之后才知道此标签只支持编码为H264的MP4文件,不支持编码为MPEG4的MP4文件,想成功播放必须要转码。于是就去网上找啊找,刚开始全是格式化工厂转,但是我要的是可以用代码实现的。。。但最后找到一种折中的方法,就是拿ffmpeg工具结合代码来完成转码。

当然了,首先得检测该MP4的编码是哪种类型,如果是H264,那就不用转了直接上传就好了,否则就需要转码。这是检测的代码。(ps:因为用的是maven项目,而中央仓库找不到这个依赖,还得手动打包到本地仓库。。。这是jar包地址,下1.0.2版本的。)

http://www.sauronsoftware.it/projects/jave/download.phpEncoder encoder = new Encoder();

File target1 = new File(path);

MultimediaInfo info3 = encoder.getInfo(target1);

System.out.println(info3);

**输出结果如下:**

it.sauronsoftware.jave.MultimediaInfo (format=mov, duration=115200, video=it.sauronsoftware.jave.VideoInfo (decoder=h264, size=it.sauronsoftware.jave.VideoSize (width=1280, height=720), bitRate=-1, frameRate=25.0), audio=it.sauronsoftware.jave.AudioInfo (decoder=mpeg4aac, samplingRate=44100, channels=2, bitRate=-1))

其中video是视频信息,audio则是音频信息,duration是视频长度。。。其他参数不一一说明了。。。最重要的是decoder这个参数,如果是h264那

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值