AWS ios SDK – 弹性转码器作业的http发布请求

纵观AWS的弹性转码器,有几个问题:

  1. 首先使用代码转换器对我的使用情况有重要的价值吗? 我正在制作一个允许用户selectvideo的ios应用程序。 当他们这样做,我上传到一个S3桶。 据我了解,我应该使用弹性代码转换器,然后转换这些video,并把它们放在第二桶hls格式。 这是否有意义,或者我会消除代码转换,因为我只是在iOS设备上创build内容,然后在ios设备上stream式传输?

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

代码:我已经基于这里的文档build立了请求正文的json结构: http : //docs.aws.amazon.com/elastictranscoder/latest/developerguide/making-http-requests.html#http-请求头这里是我得到之前,我碰到了授权头的复杂性:

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() 

当我运行这个时,显然我得到一个错误。

这是最接近我的问题,但它没有一个答案: rest与亚马逊ios sdk调用到亚马逊弹性转码器

  1. 这个问题的答案完全取决于你的用例。 Amazon Elastic Transcoder可以是转换video格式和创build缩略图,可视水印和标题等的有价值的select。这些仅仅是许多示例中的几个。 您应该查看Amazon Elastic Transcoder产品详细信息 。

  2. 如果您决定使用Elastic Transcoder ,则应该从AWSpipe理控制台设置pipe道,因为它是一次性安装。 从移动设备创buildpipe道是没有意义的。 从移动设备上,您只需将videofile upload到您的Amazon S3存储桶。 后端服务器(例如,Amazon EC2和AWS Elastic Beanstalk都是不错的select)应该监视存储桶并为Elastic Transcoder创build作业。 AWS刚刚宣布了AWS Lambda ,您可能需要检查它。 一旦工作完成,您可以使用Amazon SNS获得通知。