用Java开启直播之路(二)

2 篇文章 2 订阅
前记

当我们使用obsred5实现了一个简单的直播Demo之后,我们已经掌握的直播的一个基本的流程:推流-编码-拉流-解码,但是red5的view页面绝对不是我们所想要的,也不是我们所想呈现给用户看的界面,这时我们就需要去重写一个客户端去承载流的显示!本文将会介绍几种客户端拉流的方式,基于此基础上我们可以做一些扩展。

一、Video.js拉流

video.js是一款基于HTML5的网络视频播放器。它支持HTML5和Flash视频,以及YouTube和Vimeo(通过插件)。支持在桌面和移动设备上播放视频。这个项目从2010年中期开始,现已经在40多万个网站上使用。

video.js仍然需要支持H5的浏览器的配合,这里这里查看目前所有支持的浏览器。

video.js部署简单,只需要如下一个简单的几行html + js代码就可以部署一个直播客户端,当然,需要浏览器允许video.js使用**flash“`。

<html>
    <head>
        <title>Video.js直播</title>
        <meta charset="utf-8">
        <link href="http://vjs.zencdn.net/5.5.3/video-js.css" rel="stylesheet">
        <!-- If you'd like to support IE8 -->
        <script src="http://vjs.zencdn.net/ie8/1.1.1/videojs-ie8.min.js"></script>
    </head>
    <body>
        <h1>直播间</h1>
        <video 
            id="my-video" 
            class="video-js" 
            controls 
            preload="auto"
            width="640" 
            height="300"
            poster="http://ppt.downhot.com/d/file/p/2014/08/12/9d92575b4962a981bd9af247ef142449.jpg"
            data-setup="{}">

            <!-- 直播地址 -->
            <source src="rtmp://cyberplayerplay.kaywang.cn/cyberplayer/demo201711-L1" type="rtmp/flv">

        </video>

        <!-- 引入video.js -->
        <script src="http://vjs.zencdn.net/5.5.3/video.js"></script>

        <!-- 自动播放 -->
        <script type="text/javascript">
            var myPlayer = videojs('my-video');
            videojs("my-video").ready(function(){
                var myPlayer = this;
                myPlayer.play();
            });
        </script> 
    </body>
</html>

video更多的帮助文档请查阅http://docs.videojs.com/module-videojs.html

二、音视频转码MCT

介绍

音视频转码MCT(Multimedia Cloud Transcoder),结合百度云平台,为开发者和企业用户提供包括音视频存储、转码、CDN加速、多端安全播放器(Web/Android/iOS)、DRM(Digital Rights Management)数字版权管理等服务。

优势

极速视频转码

强大的分布式转码集群,极速的转码体验,支持主流视频格式转码,支持多码流多格式输出。

CDN全网加速

多年CDN技术积累,稳定快速,多线BGP接入,覆盖全网,企业级安全防护,为用户提供优质服务。

安全存储

服务可用性99.9%,可靠性99.999999999%,具有多级安全控制和防护保证数据安全。

丰富的SDK支持

支持RESTful API方式访问,支持多种开发语言的SDK,并提供Android/iOS/Web等多种平台的可定制的播放器。

使用

官方提供了多种视频协议播放的demo。

演示地址:http://cyberplayer.bcelive.com/demo/new/index.html
项目介绍:https://cloud.baidu.com/doc/MCT/Web-SDK.html

其中rtmp协议的demo:

<div id="playercontainer"></div>
<script type="text/javascript" src="player/cyberplayer.js"></script>
<script type="text/javascript">
    var player = cyberplayer("playercontainer").setup({
        width: 680,
        height: 448,
        file: "rtmp://cyberplayerplay.kaywang.cn/cyberplayer/demo201711-L1", // <—rtmp直播地址
        autostart: true,
        stretching: "uniform",
        volume: 100,
        controls: true,
        rtmp: {
            reconnecttime: 5, // rtmp直播的重连次数
            bufferlength: 1 // 缓冲多少秒之后开始播放 默认1秒
        },
        ak: "xxxxxxxxxxxxxxxx" // 公有云平台注册即可获得accessKey
    });
</script>

目前百度对音频转码这一块暂时不收费,但是仍然需要填写accessKey才可以正常使用MCT播放器,所以以后可能会收费,下面是accessKey的获取方式:

  • 未注册,须先注册百度云账户。
  • 已注册,直接登录。

注册成功后进入个人中心页面,用户ID就相当于accessKey:
这里写图片描述
附赠MCT支持的流格式:
输入文件格式

  • 文件格式:3gpp, asf/wmv, avi, flv/f4v, mkv, mov/mp4/m4a, mp3, mp2, mpeg/mpg, ts/ogg, mts, wmv/wma, rm/rmvb, webm等。
  • 视频编码标准:H.264, H.263/H.263+, MPEG-1/2/4, VP8/9, Quicktime, RealVideo, WMV, MJPEG等。
  • 音频编码标准:MP1, MP2, MP3, AAC, AC-3, WMA, PCM, ADPCM, AMR, RealAudio, Vorbis, DSD等。

输出文件格式

  • 文件格式:mp4, m3u8(HLS/A-HLS), flv, mp3, m4a
    • mp4为通用视频格式(Android/iOS/Windows兼容);
    • m3u8(HLS/A-HLS)为iOS默认视频格式;
    • flv为Flash视频格式;
    • mp3和m4a为音频文件格式。
  • 视频编码标准:H.264/AVC
  • 音频编码标准:AAC, MP3

目前先介绍这两种拉流方式,下一篇将会介绍如何在服务器上部署rtmp协议地址,实现一个简单的直播demo。

  • 8
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值