精华内容
下载资源
问答
  • 互联网+云媒体智慧平台解决方案
  • 云媒体服务方式是通信网络中替代传统媒体服务器的发展方向,其主要实现语音、视频以及相关业务应用的媒体处理功能。通过对视频会议产品发展需求的整理,从现有云媒体整体架构出发进行了分析,对通过云媒体的方式实现...
  • 基于Web的媒体云媒体景观工具 Media Cloud Landscape是一种交互式可视化工具,可用于探索媒体活动以及围绕特定主题使用的语言。 安装 chown www-data:www-data log 这个怎么运作 它通过为给定主题选择一组有影响力...
  • 云媒体政务融合平台方案.pptx
  • 行业文档-设计装置-云媒体教学终端.zip
  • 提出了一种基于云计算的媒体服务器系统架构,提供了一种云媒体服务器的调度方法,并对云媒体的应用前景进行了分析。基于本文所述的云媒体服务器系统,能根据当下的业务流量提供自适应性的性能管理能力,使得由之构建...
  • 2.0版本,wordpress 腾讯云媒体库迁移,将本地图片迁移到腾讯云,1.0 的腾讯云升级之后不能使用。
  • 互联网智慧云媒体平台解决方案.pdf
  • 行业分类-设备装置-云媒体道闸
  • 针对传统云媒体资源分配算法中没有考虑整体服务满意度和分配效用等因素对算法性能的影响,导致云媒体资源分配服务效率和可应用性不高的问题,引入云媒体服务提供者和云媒体服务请求者的效用函数模型,从服务价格、...
  • 针对在移动网络中,如何进一步提高云媒体服务带宽利用率的问题,提出一种基于预测机制的云媒体网络自适应视频流选择算法。该算法包含可用带宽预测模型和视频流决策模型。在带宽预测模型中,根据带宽评估结果把当前的...
  • techpackage.net-捷成股份:打造一流品质的全台网云媒体服务系统.pdf
  • Cloudbox是基于Ansible的解决方案,用于快速部署Docker容器化的云媒体服务器。 该项目是为运行Ubuntu Server 16.04 / 18.04的x64机器设计的,对其他Debian d Cloudbox的支持有限。这是一个基于Ansible的解决方案,...
  • 行业文档-设计装置-一种便携式3G网络云媒体农田环境监测仪
  • Cloudbox是一种基于Ansible和Docker的解决方案,用于快速部署云媒体服务器
  • Cloudbox是基于Ansible的解决方案,用于快速部署Docker容器化的云媒体服务器。 该项目是为运行Ubuntu Server 16.04 / 18.04的x64机器设计的,对其他Debian发行版的支持有限。 请参考 有关系统要求,安装和配置的...
  • 阿里云媒体转码处理方式

    千次阅读 2018-02-28 20:31:04
    老习惯先说下背景: 使用阿里做音视频处理,转码处理模式有两种: 主动请求阿里转码服务器获取转码之后数据写库(后续上代码); 通过阿里主题回调,转码完成之后主动回调;优缺点:主动请求在使用资源的时候...

    老习惯先说下背景:

          使用阿里云做音视频处理,转码处理模式有两种:

        主动请求阿里转码服务器获取转码之后数据写库(后续上代码);

        通过阿里云主题回调,转码完成之后主动回调;

    优缺点:主动请求在使用资源的时候才获取阿里云转码数据,如果资源使用率低或者只是个云盘推荐该方法;

                回调需要单独服务器处理阿里云回调,增加服务器压力,容易丢数据;但是数据实时性高;

    直接上核心处理代码(没搞清楚阿里云音视频转码逻辑的可能得多下点功夫看看阿里文档了,这里不赘述)

    /**
         * 处理转码结果通知
         * @param bodyJson
         */
        @Override
        public void handleMediaTranscodingNotice(JSONObject bodyJson, HttpServletResponse response) {
            JSONObject message = JSONObject.fromObject(bodyJson.getString("Message"));
            if(!message.get("Type").equals("Report") || !message.get("State").equals("Success")){
                return ;
            }
            String run_id = message.getString("RunId");
            Map<String,String> messageMap = new HashMap<String,String>();
            JSONObject mediaWorkflowExecution = message.getJSONObject("MediaWorkflowExecution");
            String workFlow = mediaWorkflowExecution.getString("Name");
            if(workFlow.contains("mp3")){
                messageMap = getObjectMapForMp3(message);
            }else{
                messageMap = getObjectMap(message);
            }
            if(!updateRemoteStatus(messageMap)){
                long num = this.springJedisDao.increment("media_notice_error_"+run_id,1);
                if(num > 5){
                    response.setStatus(200);
                    this.springJedisDao.del("media_notice_error_"+run_id);
                    return;
                }
                this.springJedisDao.expire("media_notice_error_"+run_id,24*60*60);
                response.setStatus(500);
            }else{
                response.setStatus(200);
            }
    
        }
    
        //这个接口要优化 by smkk
        private boolean updateRemoteStatus(Map<String, String> map) {
            boolean result = false;
            String key = map.get("key");
            String url = map.get("url");
            String workflow = map.get("workflow");
            String picurl = map.get("pickey");
            String picAttribute = null;
            if(StringUtils.isNotBlank(picurl)){
                picAttribute = getPicInfo(picurl);
            }
            String duration = map.get("duration");
    
            String filePath =map.get("filePath");//OSS 保存的文件 源文件路径
            BaseResp<Object> baseResp = new BaseResp<Object>();
            if(filePath.contains("longbei_media_resource")){
                if(filePath.contains("_video")){
                    url = AppserviceConfig.alimedia_mp4_outurl +"/"+ url;
                }else{
                    url = AppserviceConfig.alimedia_cdnurl + url;
                }
                baseResp = mediaResourceService.updateMediaResourceInfo(key,picurl,url,workflow,duration,picAttribute);
            }else if(filePath.contains("tiku")){
                Double d = Double.parseDouble(duration);
                tikuMongoDao.save(key, d.intValue() ,url);
                result = true;
            }else {
                baseResp = improveService.updateMedia(key,picurl,url,workflow,duration,picAttribute);
            }
            if(baseResp.getCode() == Constant.STATUS_SYS_00){
                result = true;
            }
            return  result;
        }
    
    
        //ActivityList
        public static Map<String,String> getObjectMap(JSONObject json){
            if(json.get("Type").equals("Report")&&json.get("State").equals("Success")){
                Map<String,String> map = new HashMap<>();
    
                JSONObject mediaWorkflowExecution = json.getJSONObject("MediaWorkflowExecution");
                String name = (String)mediaWorkflowExecution.get("Name");
                //通过工作流名称 判断走mp3 还是 mp4
                map.put("workflow",name);
                String mediaId = (String)mediaWorkflowExecution.get("MediaId");
    
                JSONObject jsonObject2 = mediaWorkflowExecution.getJSONObject("Input").getJSONObject("InputFile");
                String objId = jsonObject2.getString("Object");
                String filePath = jsonObject2.getString("Object");
                map.put("filePath",filePath);
                String[] objArr = objId.split("/");
                objId = objArr[objArr.length-1];
                map.put("key",objId);
                JSONArray activityList = mediaWorkflowExecution.getJSONArray("ActivityList");
                //获取截图和文件
                for (int i = 0; i < activityList.size(); i++) {
                    JSONObject j = JSONObject.fromObject(activityList.get(i));
                    if("Snapshot".equals(j.get("Type"))){
                        map.put("pickey",getPicKey(j,objId));
                        continue;
                    }
                    if("Transcode".equals(j.get("Type"))){
                        map.put("url",getFileKey(j,objId));
                        continue;
                    }
                }
                map = getTimeStr(map,mediaId);
                System.out.print("getObjectMap info ="+JSON.toJSON(map).toString());
                return map;
            }
            return null;
        }
    
    
        private static String getFileKey(JSONObject js, String objid){
            String runid = (String)js.get("RunId");
    //        String result = "filekey/"+runid+"/"+ AppserviceConfig.alimedia_mp4_query_mp4+"/"+objid;
            String result = "filekey/"+runid+".mp4";
            return result;
        }
    
        private static String getPicKey(JSONObject js, String objid){
            String runid = (String)js.get("RunId");
            return "pickey/" + runid + ".jpg";
        }
    
        private static String getPicInfo(String picKey){
            String url = AppserviceConfig.alimedia_cdnurl+ picKey +imageInfo;
            String sRequest = HttpUtils.getRequest(url,null);
            if(StringUtils.isBlank(sRequest)){
                return null;
            }
            JSONObject jsonObject = JSONObject.fromObject(sRequest);
            if(null != jsonObject){
                JSONArray jsonArray = new JSONArray();
                JSONObject reJs = new JSONObject();
                JSONObject jHeight = JSONObject.fromObject(jsonObject.get("ImageHeight"));
                JSONObject jWidth = JSONObject.fromObject(jsonObject.get("ImageWidth"));
                reJs.put("height",jHeight.get("value"));
                reJs.put("width",jWidth.get("value"));
                jsonArray.add(reJs);
                return jsonArray.toString();
            }
            return null;
        }
    
        /**
         * mp3 视频转码
         * @param json
         * @return
         */
        private static Map<String,String> getObjectMapForMp3(JSONObject json){
            Map<String,String> map = new HashMap<>();
    
            JSONObject mediaWorkflowExecution = json.getJSONObject("MediaWorkflowExecution");
            String name = (String)mediaWorkflowExecution.get("Name");
            String mediaId = (String)mediaWorkflowExecution.get("MediaId");
            map.put("workflow",name);
    
            JSONObject jsonObject2 = mediaWorkflowExecution.getJSONObject("Input").getJSONObject("InputFile");
            String objId = jsonObject2.getString("Object");
            map.put("filePath",objId);
            String[] objArr = objId.split("/");
            objId = objArr[objArr.length-1];
            map.put("key",objId);
            JSONArray activityList = mediaWorkflowExecution.getJSONArray("ActivityList");
            //获取文件
            for (int i = 0; i < activityList.size(); i++) {
                JSONObject j = JSONObject.fromObject(activityList.get(i));
                if(j.get("State").equals("Success")){
                    map.put("url",getFileForMp3(j,objId));
                    map = getTimeStr(map,mediaId);
    //                JSONObject jsonObject = JSONObject.fromObject(map);
                    break;
                }
            }
            return map;
        }
    
        private static String getFileForMp3(JSONObject js,String objid){
            String runid = (String)js.get("RunId");
    //        String result = "mp3key/"+runid+"/"+AppserviceConfig.alimedia_mp3_query_mp3+"/"+objid;
            String result ="mp3key/"+runid+".mp3";
            return  result;
        }
    
        private static Map<String,String> getTimeStr(Map<String,String> map,String mediaId) {
            String duration = "";
            try{
                QueryMediaListRequest qu = new QueryMediaListRequest();
                qu.setMediaIds(mediaId);
                qu.setAcceptFormat(FormatType.JSON);
                AcsResponse ac = getDefaultAcsClient().getAcsResponse(qu);
                JSONObject js = JSONObject.fromObject(ac);
                JSONArray jsArray = js.getJSONArray("mediaList");
                if(null != jsArray && jsArray.size()>0){
                    JSONObject j = JSONObject.fromObject(jsArray.get(0));
                    duration = (String)j.get("duration");
                }
            }catch (Exception e){
                e.printStackTrace();
            }
            if(!StringUtils.isBlank(duration)){
                Double d = Double.parseDouble(duration);
                map.put("duration",d.intValue()+"");
            }
            return map;
        }
    
        private static DefaultAcsClient getDefaultAcsClient(){
            try{
                if(null == defaultAcsClient){
                    DefaultProfile.addEndpoint("cn-"+AppserviceConfig.alimedia_area,
                            "cn-"+AppserviceConfig.alimedia_area,
                            "Mts",
                            "mts.cn-"+AppserviceConfig.alimedia_area+".aliyuncs.com");
                    DefaultProfile profile = DefaultProfile.getProfile(
                            "cn-"+AppserviceConfig.alimedia_area,
                            AppserviceConfig.alimedia_accessKeyId,
                            AppserviceConfig.alimedia_accessKeySecret);
                    defaultAcsClient = new DefaultAcsClient(profile);
                }
            }catch (Exception e){
            }
            return defaultAcsClient;
        }
    附带了一点业务转码处理,updateRemoteStatus为获取数据之后的处理业务逻辑接口;


    展开全文
  • 阿里云媒体转码

    2016-04-19 13:56:09
    由于项目中视频上传是在前端用js签名上传的,这里不写oss存储。例子只是上传到阿里在后台用java转码。


    由于项目中视频上传是在前端用js签名上传的,这里不写oss存储。例子只是上传到阿里云在后台用java转码。

    例子下载地址:

    http://download.csdn.net/detail/limyrain/9495692

    展开全文
  • 智慧方案
  • 手机或平板配合qloud media 使用,通过PC解码,使手机播放存放在电脑上的音频,视频文件。
  • 阿里云媒体转码MTS使用教程

    千次阅读 2017-10-24 10:10:42
    媒体转码(ApsaraVideo for Media Transcoding)是为多媒体数据提供的转码计算服务。它以经济、弹性和高可扩展的音视频转换方法,将多媒体数据转码成适合在PC、TV以及移动终端上播放的格式。适用于音视频网站、在线...

    课程介绍

    媒体转码(ApsaraVideo for Media Transcoding)是为多媒体数据提供的转码计算服务。它以经济、弹性和高可扩展的音视频转换方法,将多媒体数据转码成适合在PC、TV以及移动终端上播放的格式。适用于音视频网站、在线教育、金融视频、电商视频等多种场景。

    产品详情:https://www.aliyun.com/product/mts

    课时列表

    开始学习http://click.aliyun.com/m/27882/

    展开全文
  • 摘要:近日,在华为TechWave全球技术峰会(人工智能&数据)上,马栏山视频文创产业园首席专家周苏岳受邀发表演讲《经典永流传,媒体 AI 让老电影焕发新生》,分享与华为原生媒体服务合作的媒体AI在老电影修复...
    摘要:近日,在华为云TechWave全球技术峰会(人工智能&数据)上,马栏山视频文创产业园首席专家周苏岳受邀发表演讲《经典永流传,媒体 AI 让老电影焕发新生》,分享与华为云原生媒体服务合作的媒体AI在老电影修复方面的应用。

    本文分享自华为云社区《华为云媒体 AI,实现黑白老电影的彩色梦》,原文作者:音视频大管家 。

    近日,华为云TechWave全球技术峰会(人工智能&数据)在上海成功举办。AI技术分论坛以“AI技术创新,加速行业智能升级”为主题,邀请到行业嘉宾分享了AI在互联网媒体、医疗、环境等行业的落地实践。马栏山视频文创产业园首席专家周苏岳受邀发表演讲《经典永流传,媒体 AI 让老电影焕发新生》,分享与华为云原生媒体服务合作的媒体AI在老电影修复方面的应用。

    华为云围绕马栏山园区企业视频从制作到发布全流程业务场景,搭建了马栏山视频产业云,满足视频生产、制作、分发等各个环节的云服务需求。在修复经典影视领域,通过引入AI修复增强和上色技术,解决胶片及磁带保存劣化及当时拍摄技术限制造成的问题,与纯人工相比,处理速度可提高100+倍;而引入混合云平台,使得计算和存储资源池能够无限动态扩容,极大提升效率,降低成本。

    周苏岳指出,利用媒体AI做老电影的修复,特别是黑白视频上色方面,难度比我们想象的要大很多,以他曾负责的黑白电影《雷锋》上色为例,主要有两大难点:第一、搜索空间大,计算复杂性高;第二、颜色语义信息复杂,模型建立困难。在AI分论坛上,周苏岳表示,要解决这两大难题,主要是运用多GPU并行计算,建立AI自动上色 + 人工矫正 + AI迭代优化上色的自学习迭代上色工艺;另外,形成整体到局部的迭代优化流程,空间尺度上,通过筛选框定点优化局部颜色,时间尺度上,通过颜色传播算法优化连续帧之间的颜色效果。

    马栏山视频文创产业园首席专家周苏岳

    电影《雷锋》的修复,解决了AI神经网络自动学习与上色的3大难题:不同帧之间的颜色时序一致性;单帧图片内的颜色空间协调性;物品对象的颜色语义一致性。周苏岳也坦诚道,AI视频上色还面临很多挑战,比如在运动及光影变化明显时,存在由于焦点不实导致的轮廓识别精度不高而颜色溢出,少部分物品如衣领、红领巾等颜色匹配错误,多人物场景下极少数物品颜色漏上等问题。

    周苏岳还分享了华为云原生媒体服务如何高效地帮助马栏山5G高新视频公共服务云平台在影视剧生产、广电制播及融媒体运营等多场景应用。未来,马栏山视频文创产业园与华为云将进一步加强合作,在筛选框定点优化局部颜色、关键帧颜色传播算法、以及模型层面增加物体追踪及上色约束方面进行针对性攻关,以解决当前AI系统存在的两个主要问题:当前模型在低分辨率图片(480P)上训练不适应高清和4K视频上色;光影变化导致全局灰度变化,颜色相似性变得模糊。预计明年将会有更优秀的AI工艺生产的经典影视作品跟大家见面。

    华为深耕音视频领域30多年,拥有1000多项音视频算法专利,在5G、IT基础设施、智能终端、芯片等方面全栈领先。华为云原生媒体服务,在老旧视频修复和标清/高清视频的超高清转置方面,有着丰富的经验,目前已与国内多家媒体平台以及产业园区达成合作,得到业界的广泛认可。未来云上内容制作正在成为趋势,华为云原生媒体服务将持续深耕影视制作领域,为推进中国影视工业数字化升级、促进整个电影产业发展打造坚实的云服务平台。

    在近日举办的华为云TechWave云原生媒体服务专题日上,华为云原生视频服务正式升级为华为云原生媒体服务,专题日深度解读三大产品领域-“媒体生产”,“媒体分发”,以及“媒体应用”。看华为三十年媒体技术积累如何为传统业务赋予新的竞争力,拓展新赛道,激活行业生产力。点击链接了解更多云原生媒体服务干货看点。https://www.huaweicloud.com/about/techwave_video.html

    点击关注,第一时间了解华为云新鲜技术~

    展开全文
  • 提出一种媒体资源池云化中的多租户资源调度、负载均衡实现技术及流程,介绍了云媒体在IMS业务平台中的应用方案、云媒体资源技术的实验情况,并对云媒体商业模式等进行了阐述,为推动本土软硬件云媒体服务器生产商及...
  • 多媒体系统实现流媒体技术.pptx
  • 智慧媒体云建设方案
  • 百度媒体云用户手册

    2013-12-12 00:33:14
    百度媒体云用户手册,介绍了百度的基本功能
  • LiveQing云端流媒体-平台功能

    万次阅读 2019-04-18 21:36:21
    LiveQing平台是一套由LiveQing、LiveGBS或LiveNVR构成的完整平台架构,支持分布式、跨平台、多点部署,流媒体服务器支持负载均衡,按需直播,非常适用于互联网化的安防、智能家居、幼教平台、透明厨房、透明家装...
  • 基于混合架构生产和发布相结合的CMS 生产CMS部署在私有...技术创新点三 基于混合架构生产和发布相结合的CMS 基于融合媒体云的内容交互系统 在平台统一的用户管理和运维管理下支持市区县各级用户一对一一对多
  • pdf文件,43页,智子媒体大数据营销方案

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 88,913
精华内容 35,565
关键字:

云媒体