• 视频后台转码系统,在线视频转码系统 在线转码 在线播放视频


    笔记一下 去年做的一个视频在线转码系统笔记

    能解决

    • 上传视频 后台自动转码系统;

    • 上传视频完成立刻获取播放代码;

    上传视频后台转码系统

    网络上能直接播放的视频通常不是我们拍摄器材 直接拍摄的格式 例如 ( fmpeg,avi,rm,wov mkv 等)。 这些格式的文件是不能直接在网络上进行在线播放的;鉴于之前有客户需要一个能在线 直接上传上面任意视频格式 让后播放这个视频 这个需求,几经研究 我开发了一个能在线直接上传并转码为在线直接播放视频的系统。系统提供API接口,后台发布内容的时候上传任意视频 调用接口 放回播放地址,系统后台完成转码;

    传统的视频转码方式

    一 调用主流视频网站地址

    例如我要建立一个网站 ,网站中希望能播放视频, 通常的做法是吧这些视频上传到 主流的视频网站 例如 youku 腾讯等视频网站 让后再通过他们的视频播放地址 再嵌入到我们的网页中 这样的方式也可以达到目的; 只是他们可能会在你的视频播放的时候加上广告 打上他们的logo;

    二 本地通过转码软件

    本地通过转码软件吧 视频转换为flv 或者mp4 这些能网络播放的格式 然后再上传 通过播放器播放这个地址; 这能解决问题,但是会比较麻烦 要线下手动处理;

    在线视频转码系统

    例如 我的一个客户 在他的新闻发布系统中(CMS) 以前要发布新闻 新闻中有视频 他们通常是吧视频传到外面的视频网站youku 上,然后用优酷的播放地址;后来通过我们的在线转码系统 他们把视频通过一上传组件把视频传给我我们系统的接口 我们系统直接给返回播放代码,无需修改任意功能和代码 直接把放回的播放代码插入新闻中即可播放;

    • 独立部署 不影响已有的系统;

    • 提供接口 方便集成已有的老系统;

    • 支持分布式部署

    接口文档说明

    (1) 上传视频接口

    POST /admin/Upload/upload

    上传视频文件,注意视频文件字段为file, 类型为file类型;

    参数

    参数 类型 是否必填 说明
    file file 上传文件字段"file" 字段类型也是file
    width number 自定义播放器宽度 ;默认为 800
    height number 自定义播放器高度 ;默认为 500
    # 参考案例
    curl -X POST 
      http://video-transcode.xxxx.net:81/admin/Upload/upload 
      -H 'cache-control: no-cache' 
      -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' 
      -F file=@fj1.mp4
    
    

    返回值

    # 注意上传放回的为原始视频,不要用这个地址类播放 这个视频很大;
    # 上传成功后 携带 ID 回调请求 获取播放地址接口例如: /admin/play/15
    {
        "status": 1,
        "info": "上传成功",
        "data": {
            "ext": "mpeg",
            "savename": "1.mpeg",
            "filename": "18b93553d62352efa0216b463a92ed63.mpeg",
            "size": "17M"
        },
        "upinfo": {
            "name": "1.mpeg",
            "type": "video/mpeg",
            "tmp_name": "/tmp/phpddldpC",
            "error": 0,
            "size": 18251036
        },
        "id": "20",
        "task_status": 1,
        "html": { # 播放器代码
            "iframe": "<iframe height=300 width=500 src=http://video-transcode2.xxx.net:81/api/Video/play?id=20></iframe>",
            "page": "http://video-transcode2.03in.net:81/api/Video/play?id=20"
        }
    }
    
    

    (2) 获取播放视频代码

    GET /api/getplay/12

    参数

    参数 类型 说明
    id string 视频ID, API后面直接加上即可

    关于播放视频地址说明; 上传的视频不能立刻播放;因为还是在转码过程中;需要等待视频转码完成才能播放,转码的时间长度和视频大小相关。

    实例

    curl -X GET 
      http://video-transcode.xxxxx.net:81/api/getplay/12 
      -H 'cache-control: no-cache' 
      
    
    

    返回

    # 返回实例
    {
        "info": "播放地址",
        "html": "<iframe height=400 width=510 src=http://video-transcode2.xxxx.net:81/api/Video/play?id=12></iframe>",
        "url": "http://video-transcode2.xxxx.net:81/api/Video/play?id=12>"
    }
    
    

    网站后台视频转码系统

  • 相关阅读:
    Java 实现常见内排序
    markdown基本语法
    HashMap (JDK1.8) 分析
    jQuery总结
    JS 数组 常用方法
    CSS样式 解决文字过长显示省略号问题
    Python中的 __name__属性的含义和作用
    http协议详细介绍
    Http和Https的区别
    爬虫——requests库使用方法
  • 原文地址:https://www.cnblogs.com/freefei/p/11129993.html
Copyright © 2020-2023  润新知