使用海康摄像头保存的mp4文件,无法web端预览的问题,现已解决,记录一下 您所在的位置:网站首页 海康录像机文件下载路径 使用海康摄像头保存的mp4文件,无法web端预览的问题,现已解决,记录一下

使用海康摄像头保存的mp4文件,无法web端预览的问题,现已解决,记录一下

2024-07-03 00:51| 来源: 网络整理| 查看: 265

最近在做一个项目,需要用到海康的录像视频,在自己开发的web端能够正常播放,格式是MP4的,本来以为是个简单的需求,没想到遇到了好多坑,特此记录:

首先,由于是联动系统,项目用到的录像文件存到的是另一台服务器,我们需要调用他们服务器的视频,直接预览。我想到的是在对方服务器建一个共享文件夹,输入\\[对方服务器ip]直接可以访问,通过Nginx暴露出ip和端口号,前端页面直接通过Nginx代理的地址就可以了。

结果。。。发现Nginx配置一直报错,经过排查发现 nginx.conf里面是这样写的:

root  '\\[对方服务器ip]';

难道不是这样么?去网上百度,发现需要建立一个虚拟磁盘,可以命名为Z:/

root  'Z:/';

这样就可以了,详见:nginx静态代理设置二:静态文件在别的服务器_FromNowOnUntilTheEnd-CSDN博客_nginx静态文件转发其他服务器动静结合把网络上的路径映射成自己的虚拟机,修改共享的文件夹,映射的虚拟机也会同步更新。映射别的电脑的文件夹的时候要关闭防火墙,否则会一直连不上1、新建静态文件夹StaticProxy,然后共享,选择账户Everyone就可以2、(本机测试用)本机共享给本机:复制共享出来的网络路径,如\\DESKTOP-2SNLNS5\StaticProxy,点击我的电脑,右键,映射网络驱动器,然后完...https://blog.csdn.net/qq_36688143/article/details/103363047OK! 第一个问题解决了 ,但是发现输入Nginx地址,Nginx还是报错 1113,百度了下发现,我的路径是英文,但是MP4文件名是中文的,这样解决:

在nginx.conf  server里面加上,charset  gbk,utf-8;这样目录既不会有乱码,还可以正常访问地址(nginx配置文件里面加上autoindex on 这样访问就可以看到Z盘的目录)。  不过这里还有一个坑,不能直接从目录点击文件进行播放,因为浏览器可能会对中文进行转码,这样还是显示不出来,要在路径上直接输入中文名,这样就又可以了!!

第二个坑解决,然后发现视频没办法播放。。。不是说MP4在浏览器可以播放的么??

没办法,继续查呗,谁让我是个菜鸡,只能自己摸索。

从网上下载了一个查看视频格式的软件,mediainfo,结果看到

格式是MPEG-PS,视频流是HEVC,这个和正常MP4格式不一样,正常是MPEG-4 AVC的,

经过百度查找,海康摄像头储存的格式不是常规的MP4,MP4也是有小格式划分的,一个H265,另一个是H264,播放器这两种都可以播放,但常规浏览器的解码器只是支持H264。。。

这里的解决办法是浏览器直接输入摄像头的ip,可以进行配置,把保存录像的格式改成h264,这样就ok了(具体也可以去海康的硬盘刻录机(NVR)里面配置)总之改完之后格式通过mediainfo看一下,如果变了就证明修改成功。

更改完毕!结果我看到的还是MPEG-PS。。。不过视频流变成AVC了,有进步,不过浏览器还是无法预览。

就在这时候,我看到了这篇救命的文章,上链接:海康威视javaSDK调用步骤以及下载无法播放的解决方案 - 灰信网(软件开发博客聚合)icon-default.png?t=L892https://www.freesion.com/article/7067942548/

这篇文章写的很详细,用来FFmpeg这个技术,下载后配个环境变量,可以全局使用,一行命令搞定:

ffmpeg -i demo.mp4 -c copy -an demp_enc.mp4

文章里面还有一个java工具类,可以把命令通过processbuilder连接起来,亲测好用,这样就完成了,最后看一下格式 MPEG-4 AVC 完美!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有