Javascript 使用Vue.js在Janus上进行流式传输

Javascript 使用Vue.js在Janus上进行流式传输,javascript,vue.js,janus-gateway,Javascript,Vue.js,Janus Gateway,我在服务器上运行过Janus,它运行得很好,但我有点 在Janus服务器上努力寻找流媒体的方法,我无法做到 找到我正在用Vue.js开发的代码片段,是吗 有没有图书馆可以在Janus上空流动?我只需要一个样品 Janus Gateway有一个流媒体插件。您需要启用该插件,并使用gstreamer或ffmpeg等软件将视频数据传输到流媒体插件。 问答展示了如何在树莓皮上实现这一点。 下面是简短的总结 设置Janus网关流媒体插件 流媒体插件配置文件是/opt/janus/etc/janus/ja

我在服务器上运行过Janus,它运行得很好,但我有点 在Janus服务器上努力寻找流媒体的方法,我无法做到 找到我正在用Vue.js开发的代码片段,是吗 有没有图书馆可以在Janus上空流动?我只需要一个样品


Janus Gateway有一个流媒体插件。您需要启用该插件,并使用gstreamer或ffmpeg等软件将视频数据传输到流媒体插件。 问答展示了如何在树莓皮上实现这一点。

下面是简短的总结

设置Janus网关流媒体插件 流媒体插件配置文件是
/opt/janus/etc/janus/janus.plugin.streaming.jcfg
。()

您可以发现有几个示例配置。例如
rtp样本
通过rtp接收VP8/Opus视频流数据。 如果要流式传输H.264视频,可以编辑配置以添加此设置

h264-sample: {
        type = "rtp"
        id = 10
        description = "H.264 live stream"
        audio = false
        video = true
        videoport = 8004
        videopt = 126
        videortpmap = "H264/90000"
        videofmtp = "profile-level-id=42e01f;packetization-mode=1"
        secret = "somesecretid"
}
编辑配置后,需要重新启动Janus网关

启动视频流 您可以通过RTP将视频数据发送到Janus流媒体插件。例如,如果您有FFMpeg,您可以这样做

$ ffmpeg \
    -f v4l2 -thread_queue_size 8192 -input_format yuyv422 \
    -video_size 1280x720 -framerate 10 -i /dev/video0 \
    -c:v h264_omx -profile:v baseline -b:v 1M -bf 0 \
    -flags:v +global_header -bsf:v "dump_extra=freq=keyframe" \
    -max_delay 0 -an -bufsize 1M -vsync 1 -g 10 \
    -f rtp rtp://127.0.0.1:8004/
$ vue create mystreaming
$ cd mystreaming
$ yarn add git://github.com/meetecho/janus-gateway.git
$ yarn add exports-loader --dev
import { Janus } from 'janus-gateway';
此命令从
/dev/video0
读取视频数据,并 请注意,视频参数和输出RTP端口号(
8084
在上述示例中)应与Janus streaming插件配置相对应

准备Vue.js前端 下一步是前端。您可以创建web前端,使用捆绑的Janus网关查看流媒体。如中所述,可以将janus.js用作JavaScript模块。但是当您想从Vue.js使用它时,您需要

例如,您可以创建Vue.js2项目并像这样添加janus.js

$ ffmpeg \
    -f v4l2 -thread_queue_size 8192 -input_format yuyv422 \
    -video_size 1280x720 -framerate 10 -i /dev/video0 \
    -c:v h264_omx -profile:v baseline -b:v 1M -bf 0 \
    -flags:v +global_header -bsf:v "dump_extra=freq=keyframe" \
    -max_delay 0 -an -bufsize 1M -vsync 1 -g 10 \
    -f rtp rtp://127.0.0.1:8004/
$ vue create mystreaming
$ cd mystreaming
$ yarn add git://github.com/meetecho/janus-gateway.git
$ yarn add exports-loader --dev
import { Janus } from 'janus-gateway';
要添加网页包配置,您需要创建包含以下内容的
vue.config.js
文件

const webpack = require('webpack')

module.exports = {
  configureWebpack: {
    plugins: [
      new webpack.ProvidePlugin({ adapter: 'webrtc-adapter' })
    ],
    module: {
      rules: [
        {
          test: require.resolve('janus-gateway'),
          loader: 'exports-loader',
          options: {
            exports: 'Janus',
          },
        }
      ]
    } 
  }
}
然后,您可以像这样从Vue.js模块导入
Janus
对象

$ ffmpeg \
    -f v4l2 -thread_queue_size 8192 -input_format yuyv422 \
    -video_size 1280x720 -framerate 10 -i /dev/video0 \
    -c:v h264_omx -profile:v baseline -b:v 1M -bf 0 \
    -flags:v +global_header -bsf:v "dump_extra=freq=keyframe" \
    -max_delay 0 -an -bufsize 1M -vsync 1 -g 10 \
    -f rtp rtp://127.0.0.1:8004/
$ vue create mystreaming
$ cd mystreaming
$ yarn add git://github.com/meetecho/janus-gateway.git
$ yarn add exports-loader --dev
import { Janus } from 'janus-gateway';
然后您可以使用janus.js并使用接收流式视频数据

我上传了,这可能对你也有帮助