Commit Graph

9 Commits

Author SHA1 Message Date
tigerenwork 1732a16ce2 fix(transcode): fast job teardown and resilient HLS delivery
- DELETE markKilled removes the job synchronously; FFmpeg is killed in the background so playlist/segment routes 404 immediately
- segment route waits up to 5s for in-progress segment writes
- centralize player teardown (pause, destroy HLS, clear media sources) to stop lingering audio/requests on close
- track and release transcode jobs on player close/reopen and reset format to avoid reusing killed job URLs
- add e2e transcode lifecycle test
2026-08-06 23:34:14 +08:00
tigerenwork e9150ce0d7 feat: 重写live transcoding 2026-05-23 21:00:23 +08:00
tigeren fd07b25abf feat(local-player-launcher): add bookmarking and rating functionality
- Add bookmark toggle button with loading state and server API integration
- Implement star rating component with interactive rating updates
- Fetch and display current bookmark and rating status on component mount
- Improve player launch logic to track which player was launched
- Add auto-launch confirmation dialog handling and prevent repeated auto-launch
- Enhance UI to display bookmark, rating controls, and video info with styling
- Remove Elmedia Player from recommended players list
- Refactor player detection and launch functions with useCallback for optimization
- Update UnifiedVideoPlayer to pass bookmark and rating handlers and flags to local player launcher component
2025-10-10 16:19:24 +00:00
tigeren 4940cb4542 feat(streaming): disable transcoding and add local player guidance
- Disable video transcoding endpoints with HTTP 410 Gone responses
- Add detailed messages recommending local media players for unsupported formats
- Modify direct stream API to return 415 status with local player usage instructions
- Implement enhanced external streaming API with CORS, range requests, and metadata headers
- Add universal media access API providing multiple streaming URLs and playback recommendations
- Improve MIME type detection and headers for better compatibility with external players
- Remove all transcoding logic and related process management code while preserving references
- Ensure fallback to direct streaming and local player usage instructions on unsupported formats
2025-09-29 17:07:05 +00:00
tigeren 5fac68e809 feat(api): add GET endpoints for bookmarks and stars by media ID
- Implement GET /api/bookmarks/[id] to check bookmark existence and return bookmark ID
- Implement GET /api/stars/[id] to check star rating existence and return rating value
- Validate media ID as integer and handle invalid ID with 400 status
- Handle server errors with 500 status and error messages

refactor(api): change rating POST request to include mediaId in body

- Update /api/stars POST request to send mediaId and rating in JSON body
- Adjust client fetch call accordingly from /api/stars/[id] to /api/stars

feat(player): integrate bookmark and rating status checks in video player

- Add state and loading indicators for bookmark and rating status in UnifiedVideoPlayer
- Fetch current bookmark and rating status on video open using new GET API endpoints
- Update local bookmark and rating state on user actions for bookmark add/remove and rating update
- Show loading state until both bookmark and rating statuses are fetched

fix(ui): improve bookmark button tooltip and state handling in ArtPlayerWrapper

- Change bookmark button title dynamically based on bookmark state ('Add bookmark' or 'Remove bookmark')
- Remove redundant bookmark count element in button for cleaner UI
2025-09-21 12:25:48 +00:00
tigeren 5e45db122e refactor(player): switch to ArtPlayer-only architecture
- Remove fallback to other players in UnifiedVideoPlayer component
- Eliminate legacy InlineVideoPlayer and VideoViewer components
- Update API to always use ArtPlayer as player type and remove alternatives
- Simplify feature detection flags to assume full ArtPlayer support
- Remove ArtPlayer error fallback chain; log errors without switching player
- Rename and adjust styles in ArtPlayerWrapper for consistency
- Refactor VideoPlayerDebug to always report ArtPlayer active
- Adjust diagnostics and logging to indicate ArtPlayer-only mode
- Clean up unused imports and feature flags related to multiple players
2025-09-20 17:57:44 +00:00
tigeren d94fed7e01 feat(player): add autoplay support and prioritize H.264 direct streaming
- Add autoplay prop to ArtPlayerWrapper, UnifiedVideoPlayer, and related components
- Implement autoplay logic with graceful handling of browser restrictions in ArtPlayerWrapper
- Set default autoplay to true in artplayer configuration and expose helper functions to create configs
- Enhance video and stream API to parse codec info with codec and container details
- Implement H.264 codec detection to prioritize direct streaming over transcoding
- Update video-viewer and stream route to override transcoding flag for H.264 codec videos
- Add MIME type to ArtPlayer to select appropriate player type (mpegts, webm, ogg, mp4)
- Extend video format detector to serve MPEG Transport Stream (.ts) files directly without transcoding
- Improve logging with detailed codec, container, and transcoding decision information
2025-09-20 17:00:49 +00:00
tigeren 4e25da484a feat(streaming): integrate hls.js with ArtPlayer and implement fallback chain
- Add hls.js plugin to ArtPlayer wrapper for HLS streaming support
- Implement adaptive bitrate streaming and quality level switching
- Create comprehensive HLS error handling with recovery and fallback
- Detect and handle HLS-compatible formats (.ts, MP4, M4V, TS, M2TS, MTS)
- Support native HLS playback fallback for Safari browsers
- Enhance fallback chain: Native → HLS → Direct → Transcoding streaming
- Update unified video player to handle ArtPlayer errors with fallback logic
- Provide user-friendly error messages and retry options on HLS failure
- Add cleanup for HLS error handlers on component unmount
- Complete Phase 2 of gradual migration tracker with HLS integration and tests
2025-09-18 15:52:39 +00:00
tigeren f9d30fa9b4 feat: native用artplayer取代 2025-09-16 15:03:56 +00:00