将ffmpeg命令输出存储到aws s3

时间:2018-05-18 07:57:19

标签: laravel amazon-web-services amazon-s3 ffmpeg

我运行的命令在本地文件sysytem中完美运行。

命令:

exec('ffmpeg -i '.config('medialibrary.s3.domain').'/listing_video/intro.mp4'.' -vf "drawtext=fontfile=' . storage_path('assets/video/FutuMd.ttf') . ': text=' . $request->get('intro_text') . ': x=300: y=450: fontsize=65: fontcolor=white: enable=\'between(t,2,5)\'" introfinal.mp4');

但我必须直接将文件存储到s3,所以我将存储文件的命令更改为s3,但filesize为0B。

exec('ffmpeg -i '.config('medialibrary.s3.domain').'/listing_video/intro.mp4'.' -vf "drawtext=fontfile=' . storage_path('assets/video/FutuMd.ttf') . ': text=' . $request->get('intro_text') . ': x=300: y=450: fontsize=65: fontcolor=white: enable=\'between(t,2,5)\'" '.Storage::put('introfinal.mp4', '').'');

提前致谢!

1 个答案:

答案 0 :(得分:0)

这个例子并不完美,但会指出你正确的方向:

exec('ffmpeg -i '.config('medialibrary.s3.domain').'/listing_video/intro.mp4'.' -vf "drawtext=fontfile=' . storage_path('assets/video/FutuMd.ttf') . ': text=' . $request->get('intro_text') . ': x=300: y=450: fontsize=65: fontcolor=white: enable=\'between(t,2,5)\'" introfinal.mp4');

$contents = file_get_contents('introfinal.mp4');

$success = Storage::put('introfinal.mp4', $contents);