class TrackObject extendsJob implementsShouldQueue

Attempts to track an obect in a video. The object is initially defined by a video annotation. The annotation will be updated with the positions determined with the object tracking method.

Traits

SerializesModels
Queueable
Dispatchable

Properties

protectedVideoAnnotation $annotation The annotation that defines the initial object to track.
protectedbool $deleteWhenMissingModels Ignore this job if the annotation does not exist any more.
int $tries The number of times the job may be attempted.

Methods

__construct(VideoAnnotation$annotation)

Create a new instance.

void
handle()

Execute the job.

void
failed(Exception$exception)

The job failed to process.

array
getTrackingKeyframes(VideoAnnotation$annotation)

Execute the object tracking method and get the resulting annotation key frames.

string
getInputJsonPath(VideoAnnotation$annotation)

Get the path to to input file for the object tracking script.

string
createInputJson(VideoAnnotation$annotation,string$videoPath)

Create the JSON file that is the input for the object tracking script.

maybeDeleteFile(string$path)

Delete a file if it exists.

string
getOutputJsonPath(VideoAnnotation$annotation)

Get the path to to output file for the object tracking script.

The
python(string$command)

Execute a Python script.

array
getStartWindow(VideoAnnotation$annotation)

Get the coordinates and dimensions of the start window for the object tracking script.

array
getPointsFromKeyframe(VideoAnnotation$annotation,array$keyframe)

Get the points of a keyframe depending on the annotation shape.

Details

at line49
__construct(VideoAnnotation$annotation)

Create a new instance.

Parameters

VideoAnnotation $annotation The annotation that defines the initial object to track.

at line59
void handle()

Execute the job.

Return Value

void

at line90
void failed(Exception$exception)

The job failed to process.

Parameters

Exception $exception

Return Value

void

at line103
protectedarray getTrackingKeyframes(VideoAnnotation$annotation)

Execute the object tracking method and get the resulting annotation key frames.

Parameters

VideoAnnotation $annotation

Return Value

array Each element is an array containing the key frame time as first element and the points as the remaining elements.

at line137
protectedstring getInputJsonPath(VideoAnnotation$annotation)

Get the path to to input file for the object tracking script.

Parameters

VideoAnnotation $annotation

Return Value

string

at line150
protectedstring createInputJson(VideoAnnotation$annotation,string$videoPath)

Create the JSON file that is the input for the object tracking script.

Parameters

VideoAnnotation $annotation
string $videoPath Path to the video file.

Return Value

string Path to the JSON file.

at line170
protected maybeDeleteFile(string$path)

Delete a file if it exists.

Parameters

string $path path

at line184
protectedstring getOutputJsonPath(VideoAnnotation$annotation)

Get the path to to output file for the object tracking script.

Parameters

VideoAnnotation $annotation

Return Value

string

at line196
protectedThe python(string$command)

Execute a Python script.

Parameters

string $command Command to execute.

Return Value

The last line of the stout output.

at line219
protectedarray getStartWindow(VideoAnnotation$annotation)

Get the coordinates and dimensions of the start window for the object tracking script.

Parameters

VideoAnnotation $annotation

Return Value

array

at line262
protectedarray getPointsFromKeyframe(VideoAnnotation$annotation,array$keyframe)

Get the points of a keyframe depending on the annotation shape.

Parameters

VideoAnnotation $annotation
array $keyframe

Return Value

array