精华内容
下载资源
问答
  • H5视频网站开发

    千次阅读 2018-05-10 11:25:41
    总结一下视频网站开发的几个主要模块:视频断点续传、视频切片、H5播放。 断点续传: 参考博文:C#实现上传文件分割,断点续传上传文件 视频切片 调用ffmpeg.exe进行切片: public void SegmentVideo(string ...

    总结一下视频网站开发的几个主要模块:视频断点续传、视频切片、H5播放。
    断点续传:
    参考博文:C#实现上传文件分割,断点续传上传文件
    视频切片
    调用ffmpeg.exe进行切片:

            public void SegmentVideo(string filePath)
            {
                string path = Environment.CurrentDirectory + "\\ffmpeg.exe";
    
                var fileName = Path.GetDirectoryName(filePath)+"\\"+Path.GetFileNameWithoutExtension(filePath);
    
                try
                {
                    Process p = new Process();//建立外部调用线程
                    p.StartInfo.FileName = path;//要调用外部程序的绝对路径
    
                    p.StartInfo.Arguments = @"-i " + filePath + " -y -vcodec copy -acodec copy -map 0 -f segment -segment_list " + fileName + ".m3u8   -segment_time 10 " + fileName + "-%03d.mp4";//后面的例子切片成.ts格式
                    p.StartInfo.UseShellExecute = false;//不使用操作系统外壳程序启动线程(一定为FALSE,详细的请看MSDN)
                    p.StartInfo.RedirectStandardError = true;//把外部程序错误输出写到StandardError流中(这个一定要注意,FFMPEG的所有输出信息,都为错误输出流,用StandardOutput是捕获不到任何消息的)
                    p.StartInfo.CreateNoWindow = false;//不创建进程窗口
                    p.ErrorDataReceived += new DataReceivedEventHandler(Output);//外部程序(这里是FFMPEG)输出流时候产生的事件,这里是把流的处理过程转移到下面的方法中,详细请查阅MSDN
                    p.Start();//启动线程
                    p.BeginErrorReadLine();//开始异步读取
                    p.WaitForExit();//阻塞等待进程结束
                    p.Close();//关闭进程
                    p.Dispose();//释放资源
                }
                catch (Exception)
                {
    
                    throw;
                }
            }
    
            private void Output(object sendProcess, DataReceivedEventArgs output)
            {
                if (!String.IsNullOrEmpty(output.Data))
                {
                    //处理方法...
                    Console.WriteLine(output.Data.ToString());
                }
            }

    结果:将视频切成若干段,并生成.m3u8文件

    H5视频播放
    使用video.js和videojs-contrib-hls.js,source为m3u8文件,type=”application/x-mpegURL”
    这里用了nginx,视频放在hls中:

    这里写图片描述

    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport"
              content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <!--<meta http-equiv="Access-Control-Allow-Origin" content="*" />-->
        <title>Document</title>
        <link href="https://cdn.bootcss.com/video.js/6.3.3/video-js.min.css" rel="stylesheet">
        <script src="https://cdn.bootcss.com/video.js/6.3.3/video.min.js"></script>
        <script src="https://cdn.bootcss.com/videojs-contrib-hls/5.11.0/videojs-contrib-hls.js"></script>
    
    </head>
    <body>
    <video id="example-video" width=960 height=540 class="video-js vjs-default-skin" controls >
        <source src="http://localhost:54162/hls/sintel.m3u8" type="application/x-mpegURL">
    </video>
    
    <script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
    <script>window.jQuery || document.write('<script src="js/vendor/jquery-3.2.1.min.js"><\/script>')</script>
    
    <script type="text/javascript">
        var player = videojs('example-video');
        player.play();
    </script>
    
    </body>
    </html>
    

    最终效果图:
    这里写图片描述

    展开全文
  • H5混合开发与MUI框架教学视频,高清录制,H5混合开发与MUI框架教学视频,高清录制。H5混合开发与MUI框架教学视频
  • 尚硅谷h5前端开发视频 尚硅谷h5前端开发视频 尚硅谷h5前端开发视频   下载地址:百度网盘

    尚硅谷h5前端开发视频

    尚硅谷h5前端开发视频

    尚硅谷h5前端开发视频

     

    下载地址:百度网盘

    展开全文
  • 使用vue二次开发海康监控H5视频播放西瓜播放器示例demo阿里云的示例demo使用海康的H5视频开发包,海康的api页面中的使用第一步第二步第三步第四步切记bug 由于公司项目需要做监控的直播跟回放,所以接触到了这个海康...


    由于公司项目需要做监控的直播跟回放,所以接触到了这个海康的监控视频播放,本来是打算使用videojs使用rtmp流进行监控的直播,因为现在主流浏览器都不支持flash插件,而videojs使用rtmp流直播的话需要浏览器支持flash,所以果断放弃,后来决定使用hls协议调用H5播放器进行播放。然后当时找了两个H5播放器一个是西瓜播放器,另一个是阿里云Web端播放器,有一说一阿里云的还是很强大的,犹豫hls流延迟比较久,最后公司决定使用海康的H5视频包进行开发

    下边是西瓜的demo跟阿里云的demo有兴趣的可以去看看官方文档

    西瓜播放器示例demo

    这里没写太对只是大致看了看试了一下有兴趣的可以自己去了解了解

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8" />
        <meta
          name="viewport"
          content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no,minimal-ui"
        />
        <meta name="referrer" content="no-referrer" />
        <title>播放器</title>
        <script
          src="https://cdn.jsdelivr.net/npm/xgplayer@2.9.6/browser/index.js"
          charset="utf-8"
        ></script>
        <script
          src="https://cdn.jsdelivr.net/npm/xgplayer-hls/dist/index.min.js"
          charset="utf-8"
        ></script>
        <style type="text/css">
          html,
          body {
            width: 100%;
            height: 100%;
            margin: auto;
            overflow: hidden;
          }
          body {
            display: flex;
          }
          #mse {
            flex: auto;
          }
        </style>
        <script type="text/javascript">
          window.addEventListener("resize", function () {
            document.getElementById("mse").style.height = window.innerHeight + "px";
          });
        </script>
      </head>
      <body>
        <div id="mse"></div>
    
        <script type="text/javascript">
          let player = new HlsPlayer({
            id: "mse",
            url: "http://58.60.109.114:83/openUrl/7U2qlBC/live.m3u8",
            isLive: true,
            autoplay: true,
            playsinline: true,
            height: "400px",
            width: "400px",
            ignores: ["time", "progress"],
          });
        </script>
      </body>
    </html>
    
    

    阿里云的示例demo

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <meta http-equiv="x-ua-compatible" content="IE=edge" >
    <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"/>
    <title>Aliplayer Online Settings</title>
    <link rel="stylesheet" href="https://g.alicdn.com/de/prismplayer/2.9.3/skins/default/aliplayer-min.css" />
    <script type="text/javascript" charset="utf-8" src="https://g.alicdn.com/de/prismplayer/2.9.3/aliplayer-min.js"></script>
    </head>
    <body>
    <div class="prism-player" id="player-con"></div>
    <script>
    var player = new Aliplayer({
      "id": "player-con",
      "source": "//player.alicdn.com/video/aliyunmedia.mp4",
      "width": "100%",
      "height": "500px",
      "autoplay": true,
      "isLive": false,
      "rePlay": false,
      "playsinline": true,
      "preload": true,
      "controlBarVisibility": "hover",
      "useH5Prism": true
    }, function (player) {
        console.log("The player is created");
      }
    );
    </script>
    </body>
    

    使用海康的H5视频开发包,

    按照海康提供的demo使用这个进行开发必须要使用ws协议进行流的传输,于是决定在后端进行流的获取,前端发送地点名称获得直播的流的地址,然后在调用播放的方法进行播放,在做的时候遇到了一点小问题,困扰了很久。

    因为我是在vue中使用的,首先要判断当前的电脑系统是64位还是32位,根据不同的系统加载不同的文件,并且在index.html中引入必须的视频包

    <script src="<%= BASE_URL %>js/playctrl64/h5player.min.js"></script>
    <script>
    window.onload = function() {
            const script = document.createElement('script'); 
            script.type = 'text/javascript';
            const agent = navigator.userAgent.toLowerCase();
            if (agent.indexOf('win32') >= 0 || agent.indexOf('wow32') >= 0) {
              script.src = '<%= BASE_URL %>js/playctrl32/Decoder.js';
            } else if (agent.indexOf('win64') >= 0 || agent.indexOf('wow64') >= 0) {
              script.src = '<%= BASE_URL %>js/playctrl64/Decoder.js';
            }
            document.getElementsByTagName('head')[0].appendChild(script);
          };
    </script>
    

    接下来在页面中的使用参考下载的文档H5playerV1.0.0开发指南.

    海康的api

    创建实例
    实例的配置
    事件初始化
    播放
    停止播放
    回放
    在这里插入图片描述
    快进后退

    页面中的使用

    第一步

    // 引入JSPlugin 
    const { JSPlugin } = window; 
    

    第二步

    进入页面的时候调用定时器判断_JSPlayM4_GetPort, _malloc 这来两个值是否存在,为什么要判断这两个参数呢因为这两个参数是在Decoder中的,我这边之前遇到一个问题在监控页面刷新以后,Decoder.js还没有挂载到页面上就调用了初始化的方法,所以会一直在报错,导致网页卡死,后来才发现是因为js还没加载的原因。所以开启定时器,进行判断是否存在,然后在初始化

    
    mounted() {
        this.time = setInterval(() => {
          const { _JSPlayM4_GetPort, _malloc } = window;
          if (_JSPlayM4_GetPort && _malloc) {
            this.getScript();
            clearInterval(this.time);
          }
        }, 100);
      },
    

    第三步

    首先先实例化,szid就是你当前的视频播放的节点,szBasePath是啥我也不知道,不知道是一个什么的路径,要求是必须写上的,然后就是分屏,这里的分屏是iMaxSplit * iCurrentSplit,initPlugin()是监听的事件,JS_SetOptions()这个是配置播放的方式,我们要选择bOnlySupportJSDecoder为true,只加载
    JSDecoder的方式。init()方法是我自己调用后端接口获得ws以后调用播放的方法

    methods:{
    	getScript() {
          this.oPlugin = new JSPlugin({
            szId: 'play_windows',
            szBasePath: './dist',
            iMaxSplit: 1,
            iCurrentSplit: 1,
            // 分屏播放,默认最大分屏4*4
          });
          this.initPlugin();
          this.init()
        },
        initPlugin() {
          this.oPlugin
            .JS_SetWindowControlCallback({
              windowEventSelect(iWndIndex) {
                // 插件选中窗口回调
                this.iWind = iWndIndex;
              },
              pluginErrorHandler(iWndIndex, iErrorCode, oError) {
                // 插件错误回调
                console.error(
                  `window-${iWndIndex}, errorCode: ${iErrorCode}`,
                  oError
                );
              },
              windowEventOver(iWndIndex) {
                // 鼠标移过回调
                console.log(iWndIndex, '鼠标移过回调');
              },
              windowEventOut(iWndIndex) {
                // 鼠标移出回调
                console.log(iWndIndex, '鼠标移出回调');
              },
              windowEventUp(iWndIndex) {
                // 鼠标mouseup事件回调
                console.log(iWndIndex, '鼠标mouseup事件回调');
              },
              windowFullCcreenChange(bFull) {
                // 全屏切换回调
                console.log(bFull, '全屏切换回调');
              },
              firstFrameDisplay(iWndIndex, iWidth, iHeight) {
                // 首帧显示回调
                console.log(iWndIndex, iWidth, iHeight, '首帧显示回调');
              },
              performanceLack() {
                // 性能不足回调
              },
            })
            .then(() => {
              this.oPlugin
                .JS_SetOptions({
                  bSupportSound: true, // 是否支持音频,默认支持
                  bSupporDoubleClickFull: false, // 是否双击窗口全屏,默认支持
                  bOnlySupportMSE: false, // 只支持MSE
                  bOnlySupportJSDecoder: true, // 只支持JSDecoder
                })
                .then(() => {
                  console.log('JS_SetOptions');
                });
            });
        },
        init(){
    	//、、、、
    	//、、、、
    	//你的逻辑
    	this.realplay()
    	}
    }
    
    

    第四步

    realplay() 调用播放的方法,以及暂停JS_Resume(),继续JS_Pause(),stop()停止所有播放的,以及快进回退和全屏的方法fullPage()
    其中this.videoUrl是当前播放的地址,
    this.iWind,是当前播放的窗口,
    this.beginTime,回放的开始时间,
    this.endTime ,回放的结束时间,
    这两个参数不是必须是可有可与的,如果要调用直播就不需要这两个参数,如果是回放就需要这两个参数
    默认情况下如果不传当前窗口值,会默认第一个窗口。在停止全部播放时不需要窗口下标

    realplay() {
          this.oPlugin
            .JS_Play(
              this.videoUrl,
              {
                playURL: this.videoUrl,
                mode: 1, // 解码类型:0=mse(flv); 1=jsdecoder 默认为0
              },
              this.iWind,// 当前窗口
              this.beginTime,
              this.endTime 
            )
            .then(
              res => {
                console.log(res, '播放成功');
              },
              err => {
                console.log(err, '播放失败');
              }
            );
        },
        // 停止
        stop() {
          this.oPlugin.JS_StopRealPlayAll().then(
            () => {
              console.info('停止播放 成功');
              // do you want...
            },
            err => {
              console.info('JS_Stop failed', err);
              // do you want...
            }
          );
        },
        fullPage() {
          this.oPlugin.JS_FullScreenDisplay(true).then(
            () => {
              console.info('全屏');
              // do you want...
            },
            err => {
              console.info('取消全屏');
              console.log(err);
              // do you want...
            }
          );
        },
         // 暂停继续
        videoPlay() {
          if (!this.isPlayed) {
            // 暂停回放
            this.oPlugin.JS_Pause(this.iWind).then(
              () => {
                console.info('暂停成功');
                this.isPlayed = !this.isPlayed;
                // do you want...
              },
              err => {
                console.info('暂停失败', err);
                // do you want...
              }
            );
          } else {
            this.oPlugin.JS_Resume(this.iWind).then(
              () => {
                console.info('播放成功');
                this.isPlayed = !this.isPlayed;
                // do you want...
              },
              err => {
                console.info('播放失败', err);
                // do you want...
              }
            );
          }
        },
        // 快放跟慢放
        setRate(val) {
          if (val === 'back') {
            this.oPlugin.JS_Slow(this.iWind).then(
              () => {
                console.info('JS_Slow success');
                // do you want...
              },
              err => {
                console.info('JS_Slow failed', err);
                // do you want...
              }
            );
          } else {
            this.oPlugin.JS_Fast(this.iWind).then(
              () => {
                console.info('JS_Fast success');
                // do you want...
              },
              err => {
                console.info('JS_Fast failed', err);
                // do you want...
              }
            );
          }
        },
    

    切记

    在关闭页面之前将播放给停掉,并且将实例置为空

    bug

    • 第一个bug就是在刷新页面以后,就会报错,因为这个时候Decoderjs还没加载到页面上就调用了创建实例的方法,所以就报错了,该问题已解决,就是我在进入页面的时候进行判断时候已经加载好了,这样的在调用创建实例的方法,目前从刷新到再次进入页面并且加载出来大概在1-2秒之间。

    bug

    • 第二个bug就是视频在切换页面的时候,视频可以停止播放,cpu也可以降下来,但是内存并没有释放,这个问题目前还没有解决
    展开全文
  • h5视频播放器

    2018-01-08 17:27:56
    根据plyr.js实现的h5视频播放器,可直接用于项目开发
  • 微信h5支付开发-php开发微信h5支付demo 大秦电商创始人,专注网络技...

    扫码下载「CSDN程序员学院APP」,1000+技术好课免费看

    APP订阅课程,领取优惠,最少立减5元 ↓↓↓

    订阅后:请点击此处观看视频课程

     

    视频教程-微信h5支付开发-php开发微信h5支付demo-微信开发

    学习有效期:永久观看

    学习时长:236分钟

    学习计划:4天

    难度:

     

    口碑讲师带队学习,让你的问题不过夜」

    讲师姓名:秦子恒

    CEO/董事长/总经理

    讲师介绍:大秦电商创始人,专注网络技术的电商应用。已经出品《1小时建站》《微博营销实战》《PHP采集》《网络招商系统》

    ☛点击立即跟老师学习☚

     

    「你将学到什么?」

    会员免费看,http://edu.csdn.net/lecturer/842右侧可办理会员卡。微信h5支付开发是子恒老师《子恒说微信开发》视频教程的第17部。详细讲解了微信H5支付开发,内容包含开通H5支付,实现微信h5支付,订单查询,关闭订单等等。欢迎反馈,微信号:QQ68183131

     

    「课程学习目录」

    第1章:微信h5支付与其它支付方式的联系和区别
    1.微信h5支付,移动网页支付新篇章
    2.开通微信h5支付
    3.设置接收退款结果的网址
    第2章:开通微信h5支付
    第3章:设置接收退款结果的网址
    第4章:微信h5支付统一下单
    1.实现日志记录功能,进行调试错误
    2.微信h5支付前端页面
    3.h5支付页面与web服务器通信
    4.微信h5支付配置文件说明
    5.php开发微信h5支付demo试看
    6.微信h5支付统一下单-完整版
    7.异步处理微信h5支付结果-试看
    8.异步处理微信h5支付结果-完整版
    第5章:查询订单信息
    1.微信h5支付开发-查询订单信息试看
    2.查询订单信息-完整版
    3.查询订单后的业务处理
    第6章:微信h5支付开发高级技巧
    1.微信h5支付关闭订单-试看
    2.微信h5支付关闭订单-完整版
    3.微信h5支付与其它支付方式的联系和区别

     

    7项超值权益,保障学习质量」

    • 大咖讲解

    技术专家系统讲解传授编程思路与实战。

    • 答疑服务

    专属社群随时沟通与讲师答疑,扫清学习障碍,自学编程不再难。

    • 课程资料+课件

    超实用资料,覆盖核心知识,关键编程技能,方便练习巩固。(部分讲师考虑到版权问题,暂未上传附件,敬请谅解)

    • 常用开发实战

    企业常见开发实战案例,带你掌握Python在工作中的不同运用场景。

    • 大牛技术大会视频

    2019Python开发者大会视频免费观看,送你一个近距离感受互联网大佬的机会。

    • APP+PC随时随地学习

    满足不同场景,开发编程语言系统学习需求,不受空间、地域限制。

     

    「什么样的技术人适合学习?」

    • 想进入互联网技术行业,但是面对多门编程语言不知如何选择,0基础的你
    • 掌握开发、编程技术单一、冷门,迫切希望能够转型的你
    • 想进入大厂,但是编程经验不够丰富,没有竞争力,程序员找工作难。

     

    「悉心打造精品好课,4天学到大牛3年项目经验」

    【完善的技术体系】

    技术成长循序渐进,帮助用户轻松掌握

    掌握微信开发知识,扎实编码能力

    【清晰的课程脉络】

    浓缩大牛多年经验,全方位构建出系统化的技术知识脉络,同时注重实战操作。

    【仿佛在大厂实习般的课程设计】

    课程内容全面提升技术能力,系统学习大厂技术方法论,可复用在日后工作中。

     

    「你可以收获什么?」

    能够掌握微信h5支付接口开发:h5支付统一下单,订单查询,关闭订单等。

     

    展开全文
  • 会员免费看,...微信h5支付开发是子恒老师《子恒说微信开发视频教程的第17部。详细讲解了微信H5支付开发,内容包含开通H5支付,实现微信h5支付,订单查询,关闭订单等等。欢迎反馈,微信号:QQ68183131
  • H5视频播放器开发-基础篇

    千次阅读 2018-07-19 16:21:43
    本文内容:H5 Video HTML5基础知识 HTML5 的最新标准只支持 MP4, WebM, 和 Ogg 视频格式。 MP4 = 带有 H.264 视频编码和 AAC 音频编码的 MPEG 4 文件 WebM = 带有 VP8 视频编码和 Vorbis 音频编码的 ...
  • H5视频播放器

    2017-12-14 15:16:57
    通过 jsModern 组件库 ( 链接:jsmodern.applinzi.com ) 创建 html5 视频播放器插件代码。
  • 视频始终不能自动播放,需触发3.touchend事件支持不友好,最好用click4.全屏处理5.不支持倍速播放属性playbackRateios1.音视频不能自动播放,需要触发事件2.浏览器视窗内的全屏处理3.airplay功能结语 Android 1....
  • H5视频播放器开发-画中画

    千次阅读 2019-01-11 17:15:22
    画中画功能是chrome70+的新功能,视频窗口能够从浏览器独立出来播放视频,看起来像是一个本地应用。 添加画中画功能 var video = document.createElement("VIDEO"); var togglebtn = document.get...
  • h5视频播放

    2017-03-24 10:15:10
    h5 嵌入视频的一些基础总结:http://www.xuanfengge.com/html5-video-play.html
  • H5游戏开发系列之"H5游戏开发之打地鼠",课程涉及JS、jQuery、H5、CSS3、游戏设计思路和游戏开发流程等核心游戏的核心要素,是一门不可你得的经典之作。...
  • H5移动开发

    2017-06-08 00:23:36
    H5移动开发一、H5移动开发颠覆原生移动端跨平台开发的各种技术1、移动应用现状 移动端应用有这几种:WebAPP、NativeAPP、HybridApp WebAPP就是网站,HTML+CSS+JS开发,用浏览器访问 UA,UserAgent(用户代理) 跨...
  • h5开发

    千次阅读 2016-08-25 14:16:36
    ... 优点 跨平台(ios和安卓都能用同一套) ...低成本(开发成本低) ...能够快速响应市场需求(服务器端已修改,客户端马上就会显示出效果,不用更新app) 统计页面停留时间 ...很多app使用内嵌web页面,减少app开发难度.
  • H5直播开发总结

    2017-02-22 10:28:02
    h5直播开发之旅总结 前言  关于直播,有很多相关技术文章,这里不多说。 作为前端,我们比较关心我们所需要的。   直播的大致流程:  APP端调用摄像头 -》 拍摄视频 -》 实时上传视频 -》...
  • 移动端H5开发

    万次阅读 2018-03-02 12:20:54
    移动端H5开发 移动端开发分为两个方向: - native app 开发 (原生APP) + 安卓 (Java-Native) + IOS (Object-C / swift) + 所有在应用商店中下载安装的程序都是原生app(都是安卓和IOS开发的) - web app ...
  • HTML5是移动端开发最常用的技术,熟悉HTML5新标签和Api以及CSS3的新的Api,可以使你的网页更加的绚丽多彩,并且开发出你意想不到的网页效果。学完此课程,你编写的代码就可以在移动设备上完美兼容啦。
  • 使用H5Stream开发实时监控系统

    万次阅读 热门讨论 2018-07-19 11:28:58
    这些天在尝试使用RTSP协议(Real Time Streaming Protocol,实时流传输协议)...而RTSP协议在市面上已经有一些H5的解决方案了,是一种发展可期的方案。 H5Stream 在网上搜索web直播/摄像头直播等关键词找到了H5St...
  • H5开发

    千次阅读 2019-09-26 09:37:10
    最重要的是PC时代保留下来的盈利模式,在H5移动页面仍然适用。    不足  当然HTML5移动页面的不足之处在于其用户留存率相对较低,需要通过不断拉新客户和推出新产品来保持互动,不适用会员体系。所以...
  • H5 视频直播那些事

    千次阅读 2017-03-31 16:40:06
    分享内容简介: ...内容大体框架:怎样利用H5来播放直播视频 怎样录制直播视频 怎样实时上传直播视频 直播中的用户交互 分享人介绍:吕鸣 目前在腾讯SNG担任手Q的web前端开发工作 博客:http://www.niha

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,072
精华内容 8,828
关键字:

h5视频开发