问题一:java.lang.IllegalArgumentException: Parameter this.client.subscriptionId() is required and cannot be null.
参考 “连接到媒体服务 v3 API – Java” 文档中“连接到 Java 客户端” 部分的代码时候,遇见了 subscriptionId() 方法抛错。这是因代码中credentials.withDefaultSubscriptionId(subscriptionId) 所使用的 subscriptionId 不正确二导致的。
错误截图
问题二: 自定义编码Demo
如果使用平台默认提供的编码,参考EncodingWithMESPredefinedPreset Demo:https://github.com/Azure-Samples/media-services-v3-java/blob/master/VideoEncoding/EncodingWithMESPredefinedPreset/src/main/java/sample/EncodingWithMESPredefinedPreset.java
.NET远程文件编码: https://docs.azure.cn/zh-cn/media-services/latest/stream-files-dotnet-quickstart
编码预设的解释参考:https://docs.microsoft.com/zh-cn/rest/api/media/transforms/create-or-update#encodernamedpreset 和
https://docs.microsoft.com/zh-cn/azure/media-services/previous/media-services-mes-preset-h264-multiple-bitrate-1080p-audio-5.1
问题三:媒体服务的 视频发布 具体是有什么用呢?不发布还是可以通过Blob URL查看吗?
一般使用媒体服务会将视频上传到媒体服务、进行编码以及发布,通过发布之后的生成的 URL 会供其他的用户进行观看的,这个 URL 会包含一些流媒体协议,供不同平台使用的,不仅仅是.MP4文件。也可以对播放文件进行加密操作的,如果不需要使用到后面的功能,只是需要 mp4 格式文件即可的话,可以不发布,直接使用 Blob 的 URL 进行访问和下载。
问题四:每次上传视频 Blob 都会创建一个新的容器 而且那个容器是专用的,不能匿名访问。那么,可以向一个固定容器上传视频吗
这个是不能指定的,当上传文件的时候,会首先创建一个资产ID ,之后根据这个ID在 Media Service所配置的 Storage Account 中创建一个 Blob。可以通过SAS(共享访问签名)的方式生成URL进行访问。
问题五:预设转码转的是视频播放的尺寸,并不是清晰度。如果需要转清晰度,如何来进行预设呢?
预设转码指的是视频像素,关于1080的单比特绿描述,是生成一个 AAC 文件,其中视频编码为 6750 kbps 的 node.js 编解码器,图片高度为1080像素,立体声音频使用-LC 编解码器以 128 kbps 进行编码。
预设里面json文件具体的值说明:https://docs.microsoft.com/zh-cn/azure/media-services/previous/media-services-mes-preset-h264-multiple-bitrate-720p
再编码的过程中,也可以为视频添加上水印,参考文档:https://docs.microsoft.com/en-us/azure/media-services/latest/transform-create-overlay-how-to