FFMPEG+mediamtx 实现海康相机视频播放

这篇具有很好参考价值的文章主要介绍了FFMPEG+mediamtx 实现海康相机视频播放。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

使用FFMPEG对海康相机视频进行读取,重新编码后再进行推流,推到mediamtx,再通过网页播放器或其他客户端拉取视频并播放

下载并安装FFMPEG

随便找的一个安装教程:https://blog.csdn.net/weixin_44704985/article/details/109532224
FFMPEG+mediamtx 实现海康相机视频播放,ffmpeg,数码相机,音视频
安装后需配置到环境变量
FFMPEG+mediamtx 实现海康相机视频播放,ffmpeg,数码相机,音视频

下载并安装mediamtx

https://github.com/bluenviron/mediamtx/releases
要是打不开自己想办法
FFMPEG+mediamtx 实现海康相机视频播放,ffmpeg,数码相机,音视频

开启mediamtx

如果不进行配置文件修改,使用默认配置,双击mediamtx.exe打开执行文件,将有以下效果
FFMPEG+mediamtx 实现海康相机视频播放,ffmpeg,数码相机,音视频

使用FFMPEG进行视频推流

打开cmd 运行以下命令

ffmpeg -re -i 你的视频.mp4 -vcodec libvpx -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/stream/h1

这句的含义是:输入流为你指定的视频,可以是本地的文件,也可以是海康的rtsp视频流,如

ffmpeg -re -i rtsp://admin:hik12345@10.16.4.25:554/Streaming/Channels/101 -vcodec libvpx -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/stream/h1

输出流是 rtsp://127.0.0.1:8554/stream
将原视频格式重新编码为libvpx(p8)格式

将会是以下效果
FFMPEG+mediamtx 实现海康相机视频播放,ffmpeg,数码相机,音视频
而此时查看mediamtx执行窗口会有以下效果
FFMPEG+mediamtx 实现海康相机视频播放,ffmpeg,数码相机,音视频

使用http方式播放视频

在网页中运行以下url
http://127.0.0.1:8889/stream/h1
FFMPEG+mediamtx 实现海康相机视频播放,ffmpeg,数码相机,音视频
如果不出意外现在能够进行视频播放,下面进行一些补充讲解。

mediamtx部分

FFMPEG+mediamtx 实现海康相机视频播放,ffmpeg,数码相机,音视频
我们可以看见,开启软件后会对RTSP、RTMP、HLS、WebRTC、SRT这几种协议类型输入流进行监听
可以通过ffmpeg将视频推送到对应协议的端口

使用FFMPEG进行视频推流(重点)

ffmpeg -re -i 你的视频.mp4 -vcodec libvpx -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/stream/h1

编码时可以设置参数,vcodec:视频编码格式,acodec:音频编码格式
格式有很多,可以使用以下方式查看具体编码格式

ffmpeg -encoders

FFMPEG+mediamtx 实现海康相机视频播放,ffmpeg,数码相机,音视频
这里我把输入视频转换为libvpx格式是因为我想直接使用http方式播放视频,而WebRTC只能支持几种格式视频播放

如果你想同时推送多个相机或视频源,可以修改输出路径,如:
rtsp://127.0.0.1:8554/stream/h1
rtsp://127.0.0.1:8554/stream/h2
rtsp://127.0.0.1:8554/stream/h3
。。。
如果是需要推送其他协议视频,请参考ffmpeg的命令行说明

文末

如果上面都成功了,那么现在你需要做以下几件事:

  1. 学习mediamtx的配置文件中各项内容的含义
  2. 学习FFMPEG的各命令以及含义
  3. 多进行尝试

请一定要耐心,最好的方式是浏览各平台官网

关于Java执行FFMPEG推送命令

看了一些文章,最终在作者那找到了答案 https://github.com/kokorin/Jaffree

  1. 打开仓库,在仓库中搜索 com.github.kokorin.jaffree,并引入依赖

https://developer.aliyun.com/mvn/guide

FFMPEG+mediamtx 实现海康相机视频播放,ffmpeg,数码相机,音视频
2. 示例代码文章来源地址https://www.toymoban.com/news/detail-723560.html

public class Test {
   public static void main(String[] args) {
       final AtomicLong durationMillis = new AtomicLong();
       //异步方式执行,别忘了把ffmpeg加入到环境变量
       FFmpegResultFuture fFmpegResultFuture = FFmpeg.atPath()
               .addInput(
                       UrlInput.fromUrl("G:\\迅雷下载\\电影\\黑社会.2005.BD1080p.国粤双语中字.mp4")
               )
               .addArguments("-vcodec", "libvpx")
               .addArguments("-rtsp_transport", "tcp")
               .addArguments("-f", "rtsp")
               .addOutput(UrlOutput.toUrl("rtsp://127.0.0.1:8554/stream/h1"))
               .executeAsync();
       try {
           Thread.sleep(1000 * 60);
       } catch (InterruptedException e) {
           e.printStackTrace();
       }
       //释放资源
       fFmpegResultFuture.graceStop();
       System.out.println("Exact duration: " + durationMillis.get() + " milliseconds");
   }
   }

到了这里,关于FFMPEG+mediamtx 实现海康相机视频播放的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 音视频开发:ffplay使用ffmpeg滤镜实现倍速播放

    曾经为实现倍速播放使用过ffmpeg,对音频使用atempo滤镜即可实现变速不变调。但是当时效果并不是特别好,和soundtouch相比处理后的音质有明显的区别。最近用新版本的ffmpeg滤镜重新实现了倍速播放,发现效果变好,已经达到可接受的程度,所以在此分享具体实现。 ffmpeg倍速

    2024年02月03日
    浏览(102)
  • FFmpeg 播放器实现音视频同步的三种方式

    我们基于 FFmpeg 利用 OpenGL ES 和 OpenSL ES 分别实现了对解码后视频和音频的渲染,本文将实现播放器的最后一个重要功能:音视频同步。 老人们经常说, 播放器对音频和视频的播放没有绝对的静态的同步,只有相对的动态的同步,实际上音视频同步就是一个“你追我赶”的过

    2024年02月06日
    浏览(63)
  • 记录对接海康威视摄像头web端实时预览:Linux+ffmpeg+nginx转换RTSP视频流(完整版实现)

            需求:web端实现海康摄像头实时预览效果         由于市面上大部分网络摄像头都支持RTSP协议视频流,web端一般无法直接使用RTSP实现视频预览,本篇使用ffmpeg对视频流进行转换,最终实现web端实时预览。         工具介绍:ffmpeg、nginx、vue         介

    2024年01月25日
    浏览(54)
  • FFmpeg开发笔记(十五)详解MediaMTX的推拉流

    ​ MediaMTX是个开源的轻量级流媒体服务器,它的安装过程参见《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2.2  FFmpeg向网络推流”。MediaMTX下载后的压缩包包括可执行程序mediamtx.exe和配置文件mediamtx.yml,看起来非常简约,但它提供的流媒体服务一点也没缩水。双击m

    2024年04月22日
    浏览(63)
  • SpringBoot+vue 实现监控视频rtsp播放(java+Nginx+ffmpeg+flv.js)

    其实原理就是: 将监控通过FFMPEG,推送给Nginx,前端通过Nginx地址拉取视频,就可以播放了。 1:安装FFMPEG. 2:下载并且配置nginx. 3:使用java代码实现调用cmd或者linux窗口,并且运行操作FFMPEG的命令,进行监控视频rtsp格式的推送,推送给nginx. 4:前端写一个video标签就可以,Src写nginx的固定地

    2023年04月16日
    浏览(84)
  • 使用EasyDarwin + ffmpeg 搭建流媒体服务器,实现多台智能电视同步播放宣传视频

    近期单位用户提出需求,需要在单位内部的9台安卓智能电视(小米电视)上同步播放用户提供的宣传视频,希望能够做到所有电视音视频同步播放(电视均位于食堂内部,使用内置扬声器,各电视间音频延迟不同会导致混响) 。 由于电视在安装时只预留了电源线,使用HDM

    2024年02月10日
    浏览(73)
  • FFmpeg入门 - 视频播放

    音视频最好从能够直接看到东西,也更加贴近用户的播放开始学起. 我们可以通过http、rtmp或者本地的视频文件去播放视频。这里的\\\"视频\\\"实际上指的是mp4、avi这种既有音频也有视频的文件格式。 这样的视频文件可能会有多条轨道例如视频轨道、音频轨道、字幕轨道等. 有些格式

    2024年02月02日
    浏览(32)
  • Qt使用FFmpeg播放视频

    一、使用场景 因为项目中需要加载MP4播放开机视频,而我们的设备所使用的架构为arm架构,其中缺乏一些多媒体库。安装这些插件库比较麻烦,所以最终决定使用FFmpeg播放视频。 二、下载编译ffmpeg库 2.1 下载源码 源码下载路径:https://www.ffmpeg.org/download.html#build-windows 2.2 编译

    2024年02月07日
    浏览(33)
  • FFmpeg解决视频播放加载卡顿问题(FFmpeg+M3U8分片)

    在这静谧的时光里,我们能够更清晰地审视自己,思考未来的方向。每一步的坚实,都是对勇气的拥抱,每一个夜晚的努力,都是对未来的信仰。不要害怕独行,因为正是在寂静中,我们更能听见内心深处的声音,更能感受到梦想的脉动。 为什么会讨论这个问题呢,原因是我

    2024年01月18日
    浏览(39)
  • Vue 3 + ffmpeg + wasm 实现前端视频剪辑、音频剪辑、音波展示、视频抽帧、gif抽帧、帧播放器、字幕、贴图、时间轴、素材轨道

    预览 www.bilibili.com/video/BV1YT411Y7YJ 技术栈: 💪 Vue 3、Vue-Router 4、Vite、pnpm、esbuild、TypeScript ☀️ Pinia 状态管理 🌪 Tailwind 原子css集成 💥 ffmpeg、wasm 底层音视频处理集成 功能 多轨道时间轴,支持帧缩放,时间缩放 支持多种类型轨道的添加删除 多功能轨道调节,支持音视频轨

    2024年02月11日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包