Troubleshooting
Start with php artisan shaka:info. It shows whether the binary runs and where temporary files go.
Packager command failed
Foxws\Shaka\Exceptions\RuntimeException: Packager command failed: ...
Shaka Packager exited with an error. The rest of the message is its own output, which usually names the problem.
not foundor exit code 127: the binary isn't atPACKAGER_PATHor on thePATH. Check withwhich packager, and make it executable withchmod +x.- A stream that doesn't exist: you added an audio stream for a file without audio, or a video stream for an audio-only file. Only add the streams the file has.
Unknown field in stream descriptor: a file name contains a comma or another character the descriptor can't hold. KeepPACKAGER_FORCE_GENERIC_INPUT=true(the default).
To see the exact command, call ->getCommand() instead of save(), and run it in a terminal.
The job times out
Illuminate\Process\Exceptions\ProcessTimedOutException means Shaka Packager ran longer than PACKAGER_TIMEOUT (default 4 hours). Raise it, and check the job and queue timeouts too. See Queues.
If the worker is killed without that exception, the job's own $timeout ran out first.
Not enough space
InsufficientStorageException: Insufficient storage space in [/cache/temp/packager]: 314572800 bytes free, 1610612736 bytes required.
A storage guard stopped the job before it started, so nothing needs cleaning up. Free up space, give the mount more room, or run fewer jobs at once. If it happens under load, fewer concurrent jobs is usually the right fix.
Packager produced no output files
The run finished but wrote nothing. Usually no streams were added, or the input has no usable video or audio. Check the input with ffprobe.
Files failed to copy
RuntimeException: 2 file(s) failed to copy to disk "s3": video.mp4: ...
The upload failed for the files listed. Common causes:
- Wrong S3 credentials, bucket or endpoint in
config/filesystems.php. withVisibility('public')on a bucket that blocks public ACLs. Leave visibility unset, or allow ACLs.- A self-hosted S3 store that needs
use_path_style_endpoint.
Temporary files pile up
Something isn't calling cleanupTemporaryFiles() after a failure. Call it in finally in every job. See Usage.
The player won't play the stream
- Nothing loads in the browser: the bucket needs a CORS policy that allows your site.
- It stops after a while: signed URLs in the playlist expired. Give segment URLs a longer lifetime, or reload the playlist.
- Subtitles don't show in DASH: use an
.mp4output for text streams, not.vtt. - Encrypted video doesn't play in Safari: use the
cbcsprotection scheme. See Encryption. - Encrypted DASH doesn't play: the player needs the key, for example through Shaka Player's
clearKeyssetting.
Logs
Packager commands, with keys redacted, and their output are logged to PACKAGER_LOG_CHANNEL. Use a separate channel to keep them apart:
PACKAGER_LOG_CHANNEL=packager
Still stuck?
Open an issue with the output of php artisan shaka:info, the command from getCommand(), and the error message.
