JAVA ~ FFmpegFrameRecorder用H264编码封装mp4 有声音无图像

1问题描述

最近公司做的关于摄像机录制视频保存的问题,发送录制了视频上传至服务器中在浏览器上播放有声音无图像,因为自己是这方面的小白,在自己也在前面博客中也分享了rtsp流媒体如何播放及在H5中嵌入vlc,帧抓取图片及录制视频等文章,希望对java人员在对摄像机不至于那么无助。

2问题展示

在这里插入图片描述

在这里插入图片描述

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
   <div>
		<video width="660" height="340" controls>
		<source src="D:\ccct\code\static\video.3gp" type="video/mp4">
		</video>
   </div> 
    <div>
		<video width="660" height="340" controls>
		<source src="D:\ccct\code\static\hah.mp4" type="video/mp4">
		</video>
   </div> 
</body>
</html>

3问题解决

添加设置视频编码

recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264);
recorder.setFormat("mp4");

部分代码片段

grabber = new FFmpegFrameGrabber(inURL);
grabber.setOption("rtsp_transport","tcp");
grabber.setFrameRate(15);
grabber.setVideoBitrate(3000000);
FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(outUrl, 1080, 720,2);
recorder.setFrameRate(15);
recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264);
recorder.setFormat("mp4");
recorder.setVideoBitrate(3000000);
log.info("开始录制视频");
grabber.start();
recorder.start();

添加后录制视频播放
在这里插入图片描述

4总结分析

虽然只是设置一个简单的编码但是感觉网上对于这个问题没有正确的解决,也是看了一篇博客说H5自带video标签,MP4格式必须要是264的才可以播放;后面通过源码找到avcodec.AV_CODEC_ID_H264设置为264;
网上有文章说是音频问题;
有说是比特率的问题;
最后我的问题还是通过查询video标签播放MP4格式得到的启示,不过设置这个264也踩了不少坑;希望对大家有帮助。如果有帮助记得点赞关注加评论!

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值