AWS ios SDK - 弹性转码器作业的 http post 请求

2024-05-08

查看AWS弹性转码器,有几个问题:

  1. 对于我的用例来说,首先使用转码器是否具有重要价值?我正在制作一个允许用户选择视频的 ios 应用程序。当他们这样做时,我会将其上传到 S3 存储桶。据我了解,我应该使用弹性转码器对这些视频进行转码,并将它们以 hls 格式放入第二个存储桶中。这是否有意义,或者我是否可以消除转码步骤,因为我只在 iOS 设备上创建内容,然后在 iOS 设备上流式传输?

  2. 假设执行管道作业有一定价值,我有一个实现问题:如果我使用 ios SDK,是否有办法绕过手动创建弹性转码器请求文档中指定的 http 授权标头?当我在 xcode 中工作时,我没有看到任何特定于转码器的方法,但我只是想知道是否有某种方法可以使用像 AWSRequest (而不是 NSMutableURLRequest)这样的东西,这可以省去我制作授权密钥。我查看了一大堆文档,包括 ios SDK 示例项目,但没有看到使用像 AWSRequest 这样的东西。请帮助我指明正确的方向!

代码:我已经根据此处的文档构建了请求正文的 json 结构:http://docs.aws.amazon.com/elastictranscoder/latest/developerguide/making-http-requests.html#http-request-header http://docs.aws.amazon.com/elastictranscoder/latest/developerguide/making-http-requests.html#http-request-header这是我在遇到授权标头的复杂性之前所得到的信息:

println("my json: \(jsonRequestString)")

                var dateFormatter:NSDateFormatter = NSDateFormatter()
                dateFormatter.dateFormat = "yyyyMMdd'T'HHmmss'Z'"
                var dateString = dateFormatter.stringFromDate(date)
                println("dateString: \(dateString)")
                var elasticTranscoderURLString:String = "elastictranscoder.us-west-1.amazonaws.com"
                var elasticTranscoderRequest:NSMutableURLRequest = NSMutableURLRequest(URL: NSURL(string: elasticTranscoderURLString)!)
                elasticTranscoderRequest.HTTPMethod = "POST"
                elasticTranscoderRequest.addValue("elastictranscoder.us-west-1.amazonaws.com", forHTTPHeaderField: "Host")
                elasticTranscoderRequest.addValue("application/x-amz-json-1.0", forHTTPHeaderField: "Content-Type")
                elasticTranscoderRequest.addValue(dateString, forHTTPHeaderField: "x-amz-date")
                //placeholder - need to add authorization header field
                //placeholder - need to add content-length header field
                var requestData: NSData = jsonRequestString.dataUsingEncoding(NSUTF8StringEncoding)!
                elasticTranscoderRequest.HTTPBody = requestData

                var elasticTranscoderSession = NSURLSession.sharedSession()

                var elasticTranscoderTask = elasticTranscoderSession.dataTaskWithRequest(elasticTranscoderRequest, completionHandler: {(elasticTranscoderData, response, error) in

                    println("here's the error: \(error)")
                    println("here's the response: \(response)")
                    println("I'm in the completion handler of elasticTranscoderTask")

                })//end elasticTranscoderTask completion handler
                elasticTranscoderTask.resume()

显然,当我运行此命令时出现错误。

这是最接近我的问题,但没有答案:使用亚马逊 ios sdk 到亚马逊弹性转码器进行休息呼叫 https://stackoverflow.com/questions/24234815/rest-call-with-amazon-ios-sdk-to-amazon-elastic-transcoder


  1. 这个问题的答案完全取决于您的用例。 Amazon Elastic Transcoder 是转换视频格式和创建缩略图、可视水印和字幕等的一个有价值的选择。这些只是众多示例中的几个。你应该检查一下Amazon Elastic Transcoder 产品详细信息 http://aws.amazon.com/elastictranscoder/details/.

  2. 如果您决定使用Elastic Transcoder,您应该从AWS 管理控制台 http://aws.amazon.com/console/因为它是一次性设置。从移动设备创建管道是没有意义的。在移动设备上,您只需将视频文件上传到您的 Amazon S3 存储桶即可。后端服务器(例如 Amazon EC2 和 AWS Elastic Beanstalk 都是不错的选择)应监控存储桶并为 Elastic Transcoder 创建作业。 AWS 刚刚宣布AWS Lambda http://aws.amazon.com/lambda/details/,您可能想检查一下。工作完成后,您可以使用 Amazon SNS 获取通知。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWS ios SDK - 弹性转码器作业的 http post 请求 的相关文章

随机推荐