我的AWS凭据有问题.我使用了我在〜/ .aws/credentials上创建的凭证文件,就像它在AWS文档上编写一样.但是,apache无法读取它.
首先,我收到了这个错误:
从实例配置文件元数据服务器检索凭据时出错.如果您未在Amazon EC2内部运行,则在创建客户端或提供实例化的Aws\Common\Credentials CredentialsInterface对象时,必须在"密钥"和"机密"选项中提供AWS访问密钥ID和秘密访问密钥.
然后我尝试了一些我在互联网上找到的解决方案.例如,我试图检查我的HOME变量.这是/ home/ubuntu.我还尝试将我的凭证文件移动到/ var/www目录,即使它不是我的Web服务器目录.没有任何效果.我仍然得到同样的错误.
作为第二个解决方案,我看到我们可以直接调用CredentialsProvider并在客户端上指明目录.
https://forums.aws.amazon.com/thread.jspa?messageID=583216
错误已更改,但我无法正常工作:
无法从/.aws/credentials读取凭据
我还看到我们可以使用CredentialsProvider的默认提供程序而不是指示路径.
我试过,我一直得到同样的错误:
无法从/.aws/credentials读取凭据
万一你需要这些信息,我正在使用aws/aws-sdk-php(3.2.5).我正在尝试使用的服务是AWS Elastic Transcoder.我的EC2实例是一个Ubuntu 14.04.它运行使用Capifony部署的Symfony应用程序.
在我尝试这个生产服务器之前,我在一个开发服务器上尝试过,它只能与〜/ .aws/credentials文件一起工作.此开发服务器正是生产服务器的副本.但是,它不使用Capifony进行部署.它只是该项目的正常git克隆.它只有一个EBS卷,而生产服务器有一个用于操作系统,一个用于应用程序.
啊! 我还检查了两个服务器上凭据文件的权限/所有者是否相同,并且它们是相同的.我尝试了一个777,看它是否可以改变一些东西,但没有.
有人有想法吗?
credentials amazon-ec2 amazon-web-services amazon-elastic-transcoder
我在AWS Elastic Transcoder上创建了一个管道,我正在尝试使用它的api为它创建作业.这就是我正在做的事情.
Parse.Cloud.define("createJobOnElastic", function(request, response){
Parse.Cloud.httpRequest({
method: 'POST',
headers: {
'Content-Type': 'application/json; charset=UTF-8',
'Accept': '*/*',
'Host': 'elastictranscoder.us-east-1.amazonaws.com:443',
'Content-Length': '300',
"x-amz-date": new Date().getTime()
},
url: 'https://aws.elastictranscoder.us-east-1.amazonaws.com:443/2012-09-25/jobs',
body:{
"Input":{
"Key":"fullViewLq1teqJ1Ym-nHGwcJtRuL-1433857991.895335.mp4",
"FrameRate":"auto",
"Resolution":"auto",
"AspectRatio":"auto",
"Interlaced":"auto",
"Container":"mp4"
},
"OutputKeyPrefix":"compressed/",
"Outputs":[
{
"Key":"fullViewLq1teqJ1Ym-nHGwcJtRuL-1433857991.895335.mp4",
"Rotate":"0",
"PresetId":"1351620000001-000030"
}
],
"PipelineId":"xxxxxxxxx-xxxx"
},
success: function(httpResponse) {
// console.log(httpResponse);
alert("Worked TRANCODER");
response.success();
},
error: function(httpResponse) {
// console.error(httpResponse);
alert("Did not work TRANSCODER");
response.error(httpResponse);
}
});
});Run Code Online (Sandbox Code Playgroud)
我可以看到我的网址可能不对,但那是因为我无法确定我应该从他们的文档中发送请求的网址:http://docs.aws.amazon.com/elastictranscoder/latest/developerguide /create-job.html#create-job-description
这是我作为回应得到的:
{"uuid":"7dd5e323-167f-fe75-ca64-0adeeebad099","status":0,"headers":{"Connection":"keep-alive","Content-Language":"en","Content-Length":"3871","Content-Type":"text/html","Date":"Tue, 09 Jun 2015 14:44:23 GMT","Mime-Version":"1.0","Server":"squid/3.1.19","Vary":"Accept-Language","X-Squid-Error":"ERR_DNS_FAIL 0"},"text":"Request …Run Code Online (Sandbox Code Playgroud) javascript httprequest amazon-web-services parse-platform amazon-elastic-transcoder
我正在使用AWS PHP SDK将文件上传到S3,然后使用Elastic Transcoder对其进行转码.
首先传递一切正常,putobject命令覆盖s3上的旧文件(总是命名相同):
$s3->putObject([
'Bucket' => Config::get('app.aws.S3.bucket'),
'Key' => $key,
'SourceFile' => $path,
'Metadata' => [
'title' => Input::get('title')
]
]);
Run Code Online (Sandbox Code Playgroud)
但是,在创建第二个转码作业时,我收到错误:
The specified object could not be saved in the specified bucket because an object by that name already exists
Run Code Online (Sandbox Code Playgroud)
转码器角色具有完全s3访问权限.有没有办法解决这个问题,还是我必须在每次转码前使用sdk删除文件?
我的创造工作:
$result = $transcoder->createJob([
'PipelineId' => Config::get('app.aws.ElasticTranscoder.PipelineId'),
'Input' => [
'Key' => $key
],
'Output' => [
'Key' => 'videos/'.$user.'/'.$output_key,
'ThumbnailPattern' => 'videos/'.$user.'/thumb-{count}',
'Rotate' => '0',
'PresetId' => Config::get('app.aws.ElasticTranscoder.PresetId')
],
]);
Run Code Online (Sandbox Code Playgroud) 我们正在尝试使用AWS转码器将mp4视频转码为HLS.我们看到只有很少的预设可用(highest being 2M).这给我们的最大分辨率是360p JWPlayer.
如果我们想要更高的分辨率(480p | 720p | 1080p),我们理解我们需要transcode更高比特率的视频.为此,我们需要创建新的预设.
有人可以帮助我们使用不同的transcoder设置来创建这些预设吗?我们不了解预设中提供的大多数字段.
谢谢
php amazon-web-services http-live-streaming aws-sdk amazon-elastic-transcoder
有任何想法吗?
upload amazon-s3 amazon-ec2 amazon-web-services amazon-elastic-transcoder
我使用 AWS Elastic Encoder 编码为 HLS(成功),并且一直试图将相同的 mp4 文件转码以在 MPEG-Dash 中播放。
当我转码为 HLS 时,我通常选择 30 秒的片段,对于 5 分钟的视频,我会得到 12 个文件和一个播放列表(使用其中一个内置预设)
当我将同一个文件转码为 MPEG-Dash(使用 30 秒段)时 - 我仍然得到一个大文件。没有片段。而且没有音频。播放列表格式似乎没问题 - .mpd 格式。我正在使用内置预设。
我应该为每个 mpeg-dash 转码做两次转码吗?一个在视频中,另一个在音频中,用播放列表将两者联系在一起?
是否有在线教程概述了如何编码为 MPEG-Dash 格式?
或者你们大多数人使用什么?
这是我的情况。我一直致力于在工作中构建一项服务,该服务采用动态生成的图像并将动画输出为 mp4 或 gif。用户可以选择设置尺寸、每帧的时间等。
我目前正在使用 ffmpeg 进行此操作。它工作正常,但很难(并且可能很昂贵)扩展,这主要是由于 ffmpeg 需要的 CPU/内存要求。
我刚刚花了一些时间尝试使用 AWS 的 Elastic Transcoder。它似乎不喜欢静态图像文件(jpg、png)作为工作中的源材料。文件类型也未在可用的预设选项下列出。
我确信我可以调整现有的架构,将静态图像保存为视频文件(不需要声音)并上传这些文件。不过,这仍然需要 ffmpeg 在管道中。
是否有任何其他 AWS 服务可以满足我的需求并允许使用 Elastic Transcoder?
ffmpeg amazon-ec2 amazon-web-services amazon-elastic-transcoder
有没有办法在AWS上设置转码管道,以便它自动转码上传到特定S3存储桶的任何新文件,并将它们放在另一个存储桶中?
我知道有一个REST API,理论上上传者也可以在上传文件后向代码转发器发出REST请求,但由于各种原因,这不是一个真正的选择.
我正在使用Amazon elastictranscoder将文件从flv转码为mp4,但在创建转码作业时,我找不到通过API将Cache-Control密钥元数据设置为max-age = 3600的方法
有任何想法吗?
从AWS文档中看,动画gif的最低fps可能是10fps.有没有办法让AWS创建一个具有较低fps的动画gif?
animated-gif transcoding amazon-web-services amazon-elastic-transcoder
amazon-ec2 ×3
amazon-s3 ×2
php ×2
amazon ×1
animated-gif ×1
aws-sdk ×1
credentials ×1
ffmpeg ×1
httprequest ×1
javascript ×1
metadata ×1
transcoding ×1
upload ×1