kopia lustrzana https://github.com/pixelfed/pixelfed
				
				
				
			Add Video jobs
							rodzic
							
								
									836030c527
								
							
						
					
					
						commit
						7c85a6178c
					
				|  | @ -0,0 +1,34 @@ | ||||||
|  | <?php | ||||||
|  | 
 | ||||||
|  | namespace App\Jobs\VideoPipeline; | ||||||
|  | 
 | ||||||
|  | use Illuminate\Bus\Queueable; | ||||||
|  | use Illuminate\Queue\SerializesModels; | ||||||
|  | use Illuminate\Queue\InteractsWithQueue; | ||||||
|  | use Illuminate\Contracts\Queue\ShouldQueue; | ||||||
|  | use Illuminate\Foundation\Bus\Dispatchable; | ||||||
|  | 
 | ||||||
|  | class VideoPostProcess implements ShouldQueue | ||||||
|  | { | ||||||
|  |     use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Create a new job instance. | ||||||
|  |      * | ||||||
|  |      * @return void | ||||||
|  |      */ | ||||||
|  |     public function __construct() | ||||||
|  |     { | ||||||
|  |         //
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Execute the job. | ||||||
|  |      * | ||||||
|  |      * @return void | ||||||
|  |      */ | ||||||
|  |     public function handle() | ||||||
|  |     { | ||||||
|  |         //
 | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -0,0 +1,62 @@ | ||||||
|  | <?php | ||||||
|  | 
 | ||||||
|  | namespace App\Jobs\VideoPipeline; | ||||||
|  | 
 | ||||||
|  | use Illuminate\Bus\Queueable; | ||||||
|  | use Illuminate\Queue\SerializesModels; | ||||||
|  | use Illuminate\Queue\InteractsWithQueue; | ||||||
|  | use Illuminate\Contracts\Queue\ShouldQueue; | ||||||
|  | use Illuminate\Foundation\Bus\Dispatchable; | ||||||
|  | use FFMpeg; | ||||||
|  | use App\Media; | ||||||
|  | 
 | ||||||
|  | class VideoThumbnail implements ShouldQueue | ||||||
|  | { | ||||||
|  |     use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; | ||||||
|  | 
 | ||||||
|  |     protected $media; | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Create a new job instance. | ||||||
|  |      * | ||||||
|  |      * @return void | ||||||
|  |      */ | ||||||
|  |     public function __construct(Media $media) | ||||||
|  |     { | ||||||
|  |         $this->media = $media; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Execute the job. | ||||||
|  |      * | ||||||
|  |      * @return void | ||||||
|  |      */ | ||||||
|  |     public function handle() | ||||||
|  |     { | ||||||
|  |         $media = $this->media; | ||||||
|  |         $base = $media->media_path; | ||||||
|  |         $path = explode('/', $base); | ||||||
|  |         $name = last($path); | ||||||
|  |         try { | ||||||
|  |             $t = explode('.', $name); | ||||||
|  |             $t = $t[0].'_thumb.png'; | ||||||
|  |             $i = count($path) - 1; | ||||||
|  |             $path[$i] = $t; | ||||||
|  |             $save = implode('/', $path); | ||||||
|  |             $video = FFMpeg::open($base); | ||||||
|  |             if($video->getDurationInSeconds() < 1) { | ||||||
|  |                 $video->getFrameFromSeconds(1); | ||||||
|  |             } elseif($video->getDurationInSeconds() < 5) | ||||||
|  |                 $video->getFrameFromSeconds(4); | ||||||
|  |             } | ||||||
|  |                 $video->export() | ||||||
|  |                 ->save($save); | ||||||
|  | 
 | ||||||
|  |             $media->thumbnail_path = $save; | ||||||
|  |             $media->save(); | ||||||
|  | 
 | ||||||
|  |         } catch (Exception $e) { | ||||||
|  |              | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
		Ładowanie…
	
		Reference in New Issue
	
	 Daniel Supernault
						Daniel Supernault