李帅

1.首页接口实现。

2.支持用户端上传。
......@@ -8,6 +8,7 @@ use App\Models\VideoTemp;
use Carbon\Carbon;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
use voku\helper\ASCII;
class DevFFmpeg extends Command
......@@ -49,10 +50,7 @@ class DevFFmpeg extends Command
*/
public function handle()
{
$a = <<<AAA
/usr/bin/ffmpeg -y -i '/usr/local/nginx/html/OnePoem/storage/app/public/files/65f944c1bf4458a324440ceea44c993c.mp4' -i '/usr/local/nginx/html/OnePoem/storage/app/public/temp/88/350/output_1649906074717.mp4' -i '/usr/local/nginx/html/OnePoem/storage/app/public/ffmpeg/LOGO_eng.png' -filter_complex "[0:0]drawtext="fontfile='/usr/local/nginx/html/OnePoem/storage/app/public/ffmpeg/arialuni.ttf':text='佳节清明桃李笑,野田荒冢只生愁。\\n雷惊天地龙蛇蛰,雨足郊原草木柔。\\n人乞祭余骄妾妇,士甘焚死不公侯。\\n贤愚千载知谁是,满眼蓬蒿共一丘。\\n':fontsize=26:fontcolor=white@1.0:x='(w-text_w)/2':y='(h-text_h)/2':box=1:boxcolor=0xd0cdcc@0.5",drawtext="fontfile='/usr/local/nginx/html/OnePoem/storage/app/public/ffmpeg/arialuni.ttf':text='2022年04月14日11时':fontsize=31:fontcolor=white@1.0:x='(w-text_w)/2':y='text_h':box=1:boxcolor=0xd0cdcc@0.5",drawtext="fontfile='/usr/local/nginx/html/OnePoem/storage/app/public/ffmpeg/arialuni.ttf':text='测试有感文本,这里是十五个字。':fontsize=29:fontcolor=white@1.0:x='(w-text_w)/2':y='h-text_h*2':box=1:boxcolor=0xd0cdcc@0.5" [text];[text] [2:v]overlay=20:20[water];[water][0:1][1:0][1:1] concat=n=2:v=1:a=1[v][a]" -map [v] -map [a] -c:v libx264 -bt 256k -r 25 -ar 44100 -ac 2 -qmin 30 -qmax 60 -profile:v baseline -preset fast '/usr/local/nginx/html/OnePoem/storage/app/public/video/181/141/output_16499060769238.mp4'
AAA;
dd(Str::contains("/Users/lishuai/Documents/source/OnePoem-Server/storage/app/public/ffmpeg/output_16479198841364.mp4",'/storage/app/public/'));
$path = '/Users/lishuai/Desktop/test/';
$file = $path . 'qinghuaci.mp4';
......
......@@ -19,10 +19,10 @@ class HomeController extends Controller
public function index()
{
// admin video
$lists = Immerse::query()->get();
// user video
return Response::success(Immerse::query()->get());
return Response::success();
}
......
......@@ -7,7 +7,9 @@ use App\Models\Immerse;
use App\Models\UserMakeVideo;
use App\Jobs\UserMakeVideo as MakeVideo;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Str;
use Jiannei\Response\Laravel\Support\Facades\Response;
class ImmerseController extends Controller
......@@ -45,13 +47,20 @@ class ImmerseController extends Controller
$validated = $validator->validated();
if (Str::contains($validated['video_url'],'//')){
$video_url = '' ;
}elseif (Str::contains($validated['video_url'],'/storage/app/public/')){
$video_url = $validated['video_url'];
}else{
$video_url = Storage::disk('public')->path($validated['video_url']);
}
$immerse = Immerse::query()->find($request->video_id);
$video = UserMakeVideo::query()->create([
'poem_id' => $immerse->poem_id,
'type' => $immerse->type,
'video_url' => $validated['video_url'],
'video_url' => $video_url,
'image_url' => $immerse->image_url,
'bg_music' => $immerse->bg_music,
'bgm_url' => $immerse->bgm_url,
......
......@@ -5,6 +5,8 @@ namespace App\Models;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
class Immerse extends Model
{
......@@ -17,4 +19,24 @@ class Immerse extends Model
{
}
public function getUrlAttribute($url)
{
if (Str::contains($url, '/storage/app/public/')) {
$str = Str::of($url)->replace('/usr/local/nginx/html/OnePoem/', '');
return Storage::disk('public')->url($str);
} else {
return $url;
}
}
public function getThumbnailAttribute($url)
{
if (Str::contains($url, '/storage/app/public/')) {
$str = Str::of($url)->replace('/usr/local/nginx/html/OnePoem/', '');
return Storage::disk('public')->url($str);
} else {
return $url;
}
}
}
......
......@@ -45,7 +45,7 @@ class User extends Authenticatable
return admin_asset('@admin/images/default-avatar.jpg');
}
if (Str::contains('//',$avatar)){
if (Str::contains($avatar,'//')){
return $avatar;
}
......