【Azure 媒体服务】Azure Media Service上传的视频资产,如何保证在Transfer编码后音频文件和视频文件不分成两个文件?保持在一个可以直接播放的MP4文件中呢?

问题描述

Azure Media Service上传的视频资产,如何保证在Transfer编码后音频文件和视频文件不分成两个文件?保持在一个可以直接播放的MP4文件中呢?

 

问题解答

Azure Media Service上提供的 Build-in Transform 生成的资产中,音频与视频分别存储在不同的文件中。通过自定义 StandardEncoderPreset 创建的 Transform 可以用来copy音视频到单个可以streaming播放的MP4文件。

 

第一步:把以下的内容保存在在  custom-preset.json 文件中

{
    "@odata.type": "#Microsoft.Media.StandardEncoderPreset",
    "codecs": [
        {
            "@odata.type": "#Microsoft.Media.CopyVideo"
        },
        {
            "@odata.type": "#Microsoft.Media.CopyAudio"
        }
    ],
    "formats": [
        {
            "@odata.type": "#Microsoft.Media.Mp4Format",
            "filenamePattern": "{Basename}_{Bitrate}{Extension}"
        }
    ]
}

 

第二步:使用az cli 指令创建 Transform

az ams transform create --account-name <your media service name>--resource-group <your group name> --name transformname-copy-to-single-file --preset custom-preset.json

 

第三步: 在Media Service的页面中,用创建的 <transformname-copy-to-single-file> 来编码上传的资产文件

Media Services -->  Transforms + jobs --> Create a job ...

 

参考资料

az ams transform create :http://learn.microsoft.com/en-us/cli/azure/ams/transform?view=azure-cli-latest#az-ams-transform-create-examples

CopyVideo and CopyAudio : http://learn.microsoft.com/en-us/rest/api/media/transforms/create-or-update?tabs=HTTP#copyaudio

 

当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

本文转载于网络 如有侵权请联系删除

相关文章

  • 观察者模式 vs 发布/订阅模式

    常听到"观察者模式vs发布/订阅模式",两者分别如何设计,有何不同,请看下文^_^ 01单词解析观察者模式 Observer:观察者Subject:主题Subscribe:订阅FireEvent:触发事件 发布订阅模式Publisher:发布者Subscriber:订阅者EventChannel:事件通道(或调度中心)Subscriber:订阅FireEvent:触发事件Publishtopic:发布主题Topic:主题 02观察者模式vs发布/订阅模式观察者模式:观察者(Observer)直接订阅(Subscribe)主题(Subject),而当主题被激活的时候,会触发(FireEvent)观察者里的事件。发布订阅模式:订阅者(Subscriber)把自己想订阅的事件注册(Subscribe)到调度中心(Topic),当发布者(Publisher)发布该事件(Publishtopic)到调度中心,也就是该事件触发时,由调度中心统一调度(FireEvent)订阅者注册到调度中心的处理代码。两者区别:发布/订阅模式多了一个调度中心 03示例代码观察者模式Subject

  • python-argparse模块

    argparse是python自带命令行参数解析包,可以用来方便地读取命令行参数,我们常见的pytest、unittest等单元测试框架的命令行参数,也是通过argparse模块实现的。一、使用的基本框架 创建一个解析器--》添加相关参数--〉解析参数 #!/usr/bin/python #-*-coding:utf-8-*- importargparse parser=argparse.ArgumentParser(description="demo") parser.add_argument('integers',metavar='N',type=int,nargs='+',help='anintegerforaccumulator') parser.add_argument('--sum',dest='accumulate',action='store_const',const=sum,default=max, help

  • Flutter ServicesBinding.defaultBinaryMessenger was accessed before the binding was initialized.

    fluttersdk升级遇到的异常:E/flutter(17545):[ERROR:flutter/lib/ui/ui_dart_state.cc(157)]UnhandledException:ServicesBinding.defaultBinaryMessengerwasaccessedbeforethebindingwasinitialized. E/flutter(17545):Ifyou'rerunninganapplicationandneedtoaccessthebinarymessengerbefore`runApp()`hasbeencalled(forexample,duringplugininitialization),thenyouneedtoexplicitlycallthe`WidgetsFlutterBinding.ensureInitialized()`first. E/flutter(17545):Ifyou'rerunningatest,youcancallthe`TestWidgetsFlutterBinding.ensure

  • 记录hyperf框架表单验证中自定义验证规则和格式化输出

    简介本文对使用hyperf框架的表单验证中遇到的两个小细节做一个分享。具体的两点如下:自定义验证异常数据返回格式。该问题主要在下面的第3点体现。自定义验证规则。该问题主要在下面的第6点体现。自定义验证异常格式首选根据官方文档进行操作,安装验证组件。composerrequirehyperf/validation phpbin/hyperf.phpvendor:publishhyperf/translation phpbin/hyperf.phpvendor:publishhyperf/validation复制接着在配置文件config/autoload/middlewares.php,中添加验证异常中间件。这里的异常中间件为框架自带的异常处理中间件。<?php declare(strict_types=1); /** *Thisfileispartofapi. * *@linkhttps://www.qqdeveloper.io *@documenthttps://www.qqdeveloper.wiki *@contact2665274677@qq.com *@license

  • 调查问卷 | 2020年中国云原生用户调研,邀您参与!

    导语:为进一步了解我国云原生产业发展全貌,腾讯云联合中国信息通信研究所共同启动2020年《中国云原生用户调查报告》的征集活动,诚邀业界同仁参与本次调研。01调研背景当前云计算已成为数字时代的基础设施,支撑众多企业进行数字化转型升级。随着企业上云的范围更加广泛,国内云计算的发展已基本完成大迁徙阶段,正在迈向新的云原生时代。伴随国家“新基建”战略的实施推进,云原生技术未来将支撑5G、工业互联网、物联网、边缘计算等重点领域的行业大发展。云原生的核心价值在于帮助企业构建敏态的基础设施,最大化释放云的红利,以满足企业日益增长的多元化、多场景业务需求。云原生技术栈主要以容器、微服务、服务网格、无服务等为代表,不仅继承了云的优势,在此基础上更进一步降低成本,提高资源利用率、降低交付周期、快速响应市场需求,被业界广泛接受和认可。02调研目的为进一步了解我国云原生产业发展全貌,腾讯云联合中国信息通信研究所共同启动2020年《中国云原生用户调查报告》的征集活动,有助于更深入了解国内云原生发展现状、行业应用采纳度、技术成熟度及未来发展趋势,同时关注建设方需求痛点、实施难点,以期推动云原生技术在我国的落地应用

  • 速读原著-TCP/IP(SLIP:串行线路IP)

    第二章链路层2.3尾部封装RFC893[LefflerandKarels1984]描述了另一种用于以太网的封装格式,称作尾部封装(trailerencapsulation)。这是一个早期BSD系统在DECVAX机上运行时的试验格式,它通过调整IP数据报中字段的次序来提高性能。在以太网数据帧中,开始的那部分是变长的字段(IP首部和TCP首部)。把它们移到尾部(在CRC之前),这样当把数据复制到内核时,就可以把数据帧中的数据部分映射到一个硬件页面,节省内存到内存的复制过程。TCP数据报的长度是512字节的整数倍,正好可以用内核中的页表来处理。两台主机通过协商使用ARP扩展协议对数据帧进行尾部封装。这些数据帧需定义不同的以太网帧类型值。现在,尾部封装已遭到反对,因此我们不对它举任何例子。有兴趣的读者请参阅RFC893以及文献[Leffleretal.1989]的11.8节。2.4SLIP:串行线路IPSLIP的全称是SerialLineIP。它是一种在串行线路上对IP数据报进行封装的简单形式,在RFC1055[Romkey1988]中有详细描述。SLIP适用于家庭中每台计算机几乎都有的RS-

  • 深入理解unicode编码和utf-8编码区别

    算法总结计算机的世界中,充满了各种编码,编码就是将世界的事物,通过定义的一套数字规范,进而实现其可以在计算机中存储可计算。unicode码存在的目的是为了统一对世界各国各民族的语言文字进行规范的一套编码。如下图所示unicode码只是一种编码的规范,它没有定义在计算机中怎么对其存储,在unicode编码规范中,由于unicode编码覆盖面广阔,码值分布在0到2的32次方之间。在计算机中可以使用4byte来存储一个unicode码,但是这样的存储是不有些浪费存储空间,于是就有大神出来解决这个问题,KenThompson-unix之父,同时也是go语言之父,参与设计了UFT-8来解决unicode的存储问题。unicode编码到uft-8之间的转化是怎么规范的呢?0xxxxxxx复制将unicode码的二进制按从右到左的顺序依次填入x位置,就可完成uft-8的转码。实战演示如:我们现在要将中文的"你好“转化为utf-8编码进行存储,在此我们不要使用编程语言来实现,通过手动的方式一步一步的完成转化将"你好"转化为unicode码在http://www.chi2k

  • PhotoshopCS6常用快捷键速查

      写此文的起因:这学期开了一门多媒体技术课程,主要学习Photoshop软件的操作和使用,发觉该软件异常强大,而且有许多快捷键操作,在学期末时查阅了相关资料,特整理如下,供学习借鉴。一、工具快捷键二、应用程序菜单快捷键“文件”菜单“编辑”菜单“图像”菜单“图层”菜单“选择”菜单“滤镜”菜单“视图”菜单“窗口”菜单“帮助”菜单三、面板菜单快捷键“3D”面板“历史记录”面板“图层”面板

  • [信息安全] 2.密码工具箱(续)

    在上一篇1.密码工具箱中介绍了一些密码技术相关的一些基本工具,同时遗留了一个鸡生蛋蛋生鸡的问题和公钥的认证问题( ̄▽ ̄)",这里再补充几个常用的工具先。1.伪随机数生成器(Pseudo-RandomNumberGenerator)随机数大家不陌生,但是随机数怎么就和信息安全扯上关系了呢?其实想一想我们在给自己的账号设置密码的时候,是不是都会尽量的让其他人不会轻易的猜到我们的密码,虽然并不是随机,但是它就像是满足了随机数的一个特征:不可预测性。那么对于信息安全来说来说,也是用到了这个特定,当然还有随机数的随机性,不可重复性这两点特征。随机性:完全杂乱的序列,没有统计学偏差;不可预测性:不能由已经得到的随机数才猜测出下一个随机数是什么;不可重复性:不能生成重复的随机数。根据生成的随机数是否满足这3点要求(1<2<3,依次增强)。大致可以划分伪弱伪随机数,强伪随机数,真随机数(强度依次增大)。随机性不可预测性不可重复性弱伪随机数√××只具备随机性强伪随机数√√×同时具备不可预测性真随机数√√√同时具备不可重复性仅仅依靠软件我们是无法生成真随机数的,这里我们只关注以下伪随

  • 6月6日,HTTP/3 正式发布了!

    经过了多年的努力,在6月6号,IETF(互联网工程任务小组)正式发布了HTTP/3的RFC,这是超文本传输协议(HTTP)的第三个主要版本,完整的RFC超过了20000字,非常详细的解释了HTTP/3。 另外有趣的是,6月6号也是WorldIPv6Launch的周年纪念日。 HTTP/3-RFC9114 2022年6月发布 HTTP/2-RFC9113 RFC9113在2022年6月发布,之前的RFC7540已过时。 HTTP/1.1-RFC9112 RFC9112在2022年6月发布,之前的RFC7230已过时。 HTTP/3大有可为 在作者之前的测试中,搭建了一个包含css,js资源的前端站点,分别使用了HTTP/1.1,HTTP/2,HTTP/3协议,使用Chrome访问网站,客户端在上海,服务器在旧金山,相隔了10000公里。 最后的测试结果如下,HTTP/1.1平均在3500ms,HTTP/2平均在2500ms,而HTTP/3平均在1300ms,可以看到HTTP/3带来的性能提升还是很明显的。 根据Cloudflare网站提供的报告,目前国内使用的主要版本是HT

  • Servlet获取配置信息里的初始化参数

    Servlet当中的代码: packagecom.test; importjava.io.IOException; importjavax.servlet.ServletConfig; importjavax.servlet.ServletException; importjavax.servlet.http.HttpServlet; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; publicclassDispatcherServletextendsHttpServlet{ privatestaticfinallongserialVersionUID=1L; //定义参数 Stringprefix=""; Stringsuffix=""; publicDispatcherServlet(){ super(); } @Override publicvoidinit(ServletConfigconfig)throwsServletExceptio

  • LeetCode_20-Valid Parentheses

    给定一个字符串,其中包含字符’(’,’)’,’[’,’]’,’{‘,’}’,左括号必须匹配右括号,一对匹配的括号不能单独出现单个左括号或者右括号。如:(()[])有效,[(])无效空字符串也算是有效的。 classSolution{ public: boolisValid(strings){ intlen=s.length(); stack<char>Tmp; for(inti=0;i<len;i++) { if(s[i]=='('||s[i]=='{'||s[i]=='[') { Tmp.push(s[i]); } elseif(s[i]==')'||s[i]=='}'||s[i]==']') { if(Tmp.empty())returnfalse; if(s[i]==')') { if(Tmp.top()!='(') { returnfalse; } Tmp.pop(); } elseif(s[i]=='}') { if(Tmp.top()!='{') { returnfalse; } Tmp.pop(); } elseif(s[i]==']') { if(T

  • js 字符串截取,去掉后几位,保留前几位

    实际项目中,文件上传时,在文件名后面拼了13位时间戳,但是在显示的时候,要求只显示文件名,把后面13位的时间戳去掉。例如:a='abc1234567890',怎么去掉后面固定的10位,只保留前面abc   字符串反向截取。 vara='abc1234567890' varb=a.slice(0,-10) console.log(b)//abc复制   showtooltip

  • js中State模式的解析及运用

        状态模式,在大的范畴中的定义为当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。每种编程语言有不同的实现方式,运用的范围也多用于游戏之中。   这里我用javascript来模拟状态模式,主要思想是通过事件监听的效果来控制一个主要对象的状态。那么何为事件监听的效果呢?在其他语言中,可以通过多个对象的协作来完成状态模式,而我在javascript中可以通过对DOM节点进行事件操控来传递消息,使主要对象接收消息(当然不同状态接收到的消息所产生的反应是不一样的)。而在javascript中模拟状态模式的首要步骤,就是选出这个主要对象,并且对其他对象进行DOM控制,这听起来有些抽象,下面会有一个大致的状态转移图来让大家理解理解。      我们来详细地介绍下上图的相关对象及状态:   1.Leader:这是这个状态模式例子中的主要对象,通过其他对象对他发送的消息来进行一些状态上的变化。   2.Player:这是一个发送消息的对象,我们在下文把他称之为简单对象P,通过它来发送消息给主要对象。   3.Reporter:这是一个发送消息

  • 商业智能数据处理过程

    商业智能(BusinessIntelligence,简称:BI) 数据仓库技术、线上分析处理技术、数据挖掘和数据展现技术进行数据分析以实现商业价值。 商业智能技术提供使企业迅速分析数据的技术和方法,包括收集、清洗、管理和分析汇聚数据,将这些数据转化为有用的信息,展示,可视化。 利用数据仓库、联机分析处理(OLAP)工具和数据挖掘 商业智能的关键是从许多来自不同的企业运作系统的数据中提取出有用的数据并进行清理,以保证数据的正确性,然后经过抽取(Extraction)、转换(Transformation)和装载(Load),即ETL过程,合并到一个企业级的数据仓库里,从而得到企业数据的一个全局视图,在此基础上利用合适的查询和分析工具、数据挖掘工具(大数据魔镜)、OLAP工具等对其进行分析和处理(这时信息变为辅助决策的知识),最后将知识呈现给管理者,为管理者的决策过程提供支持。 OLAP工具。提供多维数据管理环境,其典型的应用是对商业问题的建模与商业数据分析。OLAP也被称为多维分析。 数据挖掘(DataMining)软件。使用诸如神经网络、规则归纳等技术,用来发现数据之间的关系,做出基于数

  • SQL Server千万级性能优化

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在where及orderby涉及的列上建立索引。 2.应尽量避免在where子句中对字段进行null值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:selectidfromtwherenumisnull可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:selectidfromtwherenum=0 3.应尽量避免在where子句中使用!=或<>操作符,否则引擎将放弃使用索引而进行全表扫描。 4.应尽量避免在where子句中使用or来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:selectidfromtwherenum=10ornum=20可以这样查询:selectidfromtwherenum=10unionallselectidfromtwherenum=20 5.in和notin也要慎用,否则会导致全表扫描,如:selectidfromtwherenumin(1,2,3)对于连续的数值,能用between就不要用in了:selectidfromtwherenumbetween1a

  • 数据结构开发(23):二叉树中结点的查找、插入、删除与清除操作

    0.目录 1.二叉树中结点的查找操作 2.二叉树中结点的插入操作 3.二叉树中结点的删除操作 4.二叉树中结点的清除操作 5.小结 1.二叉树中结点的查找操作 查找的方式: 基于数据元素值的查找 BTreeNode<T>*find(constT&value)const 基于结点的查找 BTreeNode<T>*find(TreeNode<T>*node)const 树中数据元素和结点的查找: 基于数据元素值的查找: 定义功能:find(node,value) 在node为根结点的二叉树中查找value所在的结点 在BTree.h中实现基于数据元素值的查找: protected: virtualBTreeNode<T>*find(BTreeNode<T>*node,constT&value)const { BTreeNode<T>*ret=NULL; if(node!=NULL) { if(node->value==value) { returnnode; } e

  • SQL 2008 R2 数据库镜像操作

    镜像操作请参考:http://blog.csdn.net/dba_huangzj/article/details/35995083 应用程序数据库连接字符串(带见证服务器即自动故障转移): DBHelperDBHelparKQ=newDBHelper("DataSource=主体;FailoverPartner=镜像;InitialCatalog=数据库;UserID=帐号;Password=密码"); _conn.ConnectionString="DataSource=192.168.1.2;FailoverPartner=192.168.1.3;InitialCatalog=DB_Test;UserID=sa;Password=Aa123456"; 复制   主体与镜像手动切换指令 usemaster; alterdatabaseDB_Testsetpartnerfailover; 复制   

  • linux命令,将一个文件夹中的内容copy到另外一个文件夹

    1、【复制文件夹】将一个文件夹中的内容copy到另外一个文件及 文件夹1:test1/ 文件夹2:test2/ 目标:将test1/中的所有文件和目录拷贝到test2/中 cp-rftest1/.test2/  

  • 树的算法题学习

    //1.计算度为2度为1度为0的结点个数 voidCount(BiTreebt) { if(bt) { if(bt->lchild&&bt->rchild)n2++; elseif(bt->lchild&&!bt->rchild||bt->rchild&&!bt->lchild) n1++; elsen0++; if(bt->lchild!=nullptr)Count(bt->lchild); if(bt->rchild!=nullptr)Count(bt->rchild); } } //2.计算叶子节点个数 intBinaryTreeLeavesCount(BiTreeroot,int&count){ if(root!=NULL&&root->lchild==NULL&&root->rchild==NULL){ count++; } if(root!=NULL){ Binar

  • Day018 集合的集成结构图(一) Collection和一点list

    拖了整整一个星期多,天哪。就是给他们做那个十周年的视频,时间就这样没了,害,十多分钟的视频硬是拿个文档和几张照片做出来,做出来还挑三拣四,搞来搞去。                         数据结构 集合的集成结构图 Collection(接口) 关于java.util.Collection接口中常用的方法 1.collection中能存储什么元素 没有使用“泛型”之前,collection中可以存储Object的所有子类型。 使用了“泛型”之后,collection中只能存储某个具体的类型 集合后期我们会学习“泛型”语法,目前不用管,collection中什么都能存 只要是Object的子类型就行。(集合中不能直接存储基本数据类型,也不能存java对象,只是存储java对象的内存地址) 2.collection中的常用方法 boolean**[add](../../java/util/Collection.html#add(E))**(Ee)

相关推荐

推荐阅读