Fix match-video playback: HEVC → H.264 transcode + correct HLS URL
- CompressVideoJob: rewrite to exec ffmpeg directly. php-ffmpeg's X264 format class validates the codec name and only accepts libx264, so every job dispatched with h264_nvenc had been throwing within ~1s and leaving the source untouched. The job now honours the GPU encoder settings, and always replaces the source when the codec is HEVC/H.265 so downloads and the MP4 fallback stay playable. - VideoController + video-player component: point HLS URLs at playlist.m3u8 (the actual master file GenerateHlsJob writes) instead of the non-existent master.m3u8, which was 404-ing and forcing the player back to the raw MP4. - VideoController@store: on the NAS-success branch, flip status to 'ready' and populate duration/is_shorts before dispatching GenerateHlsJob, so the job no longer silently no-ops. - Upload chooser: render as a bottom sheet on mobile, and forward the picked type to /videos/create?type= so the create page pre-selects it. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
This commit is contained in:
1 parent
e0aa6e4817
commit
76f5ef0c84
5 files changed
+170
-68
No files matched your search
@@ -9,7 +9,7 @@
|
||||
@php
|
||||
// Force 16:9 for every video — orientation classes intentionally disabled
|
||||
$orientationClass = '';
|
||||
$hlsUrl = $video->has_hls ? route('videos.hls', ['video' => $video, 'file' => 'master.m3u8']) : null;
|
||||
$hlsUrl = $video->has_hls ? route('videos.hls', ['video' => $video, 'file' => 'playlist.m3u8']) : null;
|
||||
$mp4Url = route('videos.stream', $video) . '?v=' . $video->updated_at->timestamp;
|
||||
$nextUrl = $nextVideo && $playlist ? route('videos.show', $nextVideo) .'?playlist='.$playlist->share_token : null;
|
||||
$prevUrl = $previousVideo && $playlist ? route('videos.show', $previousVideo).'?playlist='.$playlist->share_token : null;
|
||||
|
||||
Reference in new issue
Block a user