Commit Graph

107 Commits

Author SHA1 Message Date
tigeren 8b12de057f feat(libraries): add IntelliSense feature for enhanced library management
- Implement API endpoint for directory listing and library status detection
- Add UI modal dialog for folder browsing and navigation
- Enable folder selection with dedicated "Select" buttons per folder
- Prevent duplicate library additions with visual grey-out indicators
- Normalize paths for cross-platform case-insensitive comparisons
- Integrate with existing library management workflow for seamless use
- Provide detailed documentation and multiple test scripts for validation
- Update feature status and README to include new IntelliSense functionality
2025-10-20 14:40:29 +00:00
tigeren 2df4556772 feat(player): add file path display below video title
- Display the video file path in smaller, gray text below the title
- Apply drop shadow and truncate long paths for better readability
- Ensure consistent UI spacing with margin top on the path display
2025-10-19 13:16:43 +00:00
tigeren 301d315ed1 fix(settings): change IntelliSense folder selection handler
- Replace navigateToIntelliSenseFolder with selectIntelliSenseItemAsLibrary for button click
- Pass intelliSensePath and false as arguments to new handler function
- Update button onClick behavior to reflect new selection logic
2025-10-19 13:03:16 +00:00
tigeren 3bed369a40 feat(local-player-launcher): add cancel buttons for easier dialog dismissal
- Added a cancel button below main action buttons on the player launcher
- Inserted another cancel button inside the settings section for consistent UI
- Both buttons use ghost variant style and full width with muted text
- Enhance user experience by providing improved dialog dismissal options
2025-10-19 12:58:35 +00:00
tigeren c9631d61b8 fix(intellisense): resolve case sensitivity issues on Linux systems
- Normalize file paths to lowercase for consistent, case-insensitive comparison
- Update library path checks to use normalized paths to avoid duplicates
- Ensure already added libraries are visually greyed out regardless of path casing
- Improve cross-platform compatibility by handling path case differences on Linux, macOS, and Windows
- Add new test script to verify case sensitivity fixes for IntelliSense feature
- Update documentation and feature status to reflect library IntelliSense improvements
- Bump Docker image version from 1.5 to 1.6 in deployment instructions
2025-10-19 11:15:32 +00:00
tigeren ddf5f1e9b8 feat(cluster-folder-view): add conditional navigation rendering
- Introduce `showNavigation` prop to control the visibility of the navigation header and breadcrumbs in the ClusterFolderView component.
- Update ClusterPage to set `showNavigation` to false, disabling navigation for specific use cases.
2025-10-18 17:58:20 +00:00
tigeren 4e3c4a1277 feat(cluster-page): enhance user experience with scrolling management and rating updates
- Implement body and HTML overflow management to prevent scrolling when the cluster page is active
- Update rating handling to support deletion of existing ratings when rating is set to zero
- Add file size formatting utility for improved display of media sizes
- Refactor UI components for better layout and responsiveness, including adjustments to card and tab styles
- Ensure consistent styling and spacing across various elements for a polished look
2025-10-18 17:52:36 +00:00
tigeren 7e5b122565 feat(library): add IntelliSense folder browsing for adding libraries
- Create API endpoint to list directories under /mnt with navigation support
- Detect and indicate already added libraries to prevent duplicates
- Add "Browse" button to library path input for opening modal folder selector
- Implement modal UI with directory navigation, current path display, and selection buttons
- Integrate modal selection with existing library adding workflow
- Show visual feedback by disabling selection of existing libraries
- Update documentation and feature status to include the new IntelliSense feature
- Add test scripts covering IntelliSense navigation and library conflict detection
2025-10-18 16:07:16 +00:00
tigeren f65b67a64d fix(surprise-me): change default algorithm to weighted_random
- Update initial algorithm state from 'unwatched_first' to 'weighted_random'
- Adjust SurpriseMePage to use new default recommendation algorithm
2025-10-14 17:33:28 +00:00
tigeren 438e4f2192 feat(scanner): add file deletion cleanup and thumbnail verification
- Implement cleanupDeletedFiles to remove orphaned database records for files no longer on disk
- Add verifyAndRegenerateThumbnail to detect and regenerate missing thumbnails for existing media
- Integrate new cleanup and verification steps into main scanLibrary async function
- Update scan stats to track files removed and thumbnails regenerated
- Enhance error handling to log but not block overall scan progress
- Maintain existing file discovery and processing workflows with new verification layers
- Provide detailed scanning process flow and statistics tracking for improved observability
2025-10-14 17:27:00 +00:00
tigeren 56e2225e8a docs(library-clusters): add documentation for library scan enhancement
- Add four new docs covering requirements, architecture, implementation plan, and summary
- Update FEATURE_STATUS.md with detailed library scan enhancement feature list and planning status
- Include new section in README.md outlining enhanced scan features and documentation links
- Update library cluster docs count from 12 to 16 to reflect new documents
- Mark library scan enhancement as critical priority and planning complete in status files
2025-10-13 09:40:59 +00:00
tigeren 5e5534ca77 chore(tests): remove obsolete HLS and progress bar test scripts
- Delete legacy HLS diagnostic script to clean up old testing utilities
- Remove deprecated folder bookmarks migration shell script
- Remove deprecated ArtPlayer integration HTML test file
- Remove legacy HLS streaming test HTML interface
- Remove obsolete progress bar test script for transcoded videos
- Update documentation to reflect removal and archive testing suite as complete
- Consolidate test files under organized testing suite directories and guides
2025-10-13 03:09:16 +00:00
tigeren 99858f0000 feat(database): add initial media database file
- Include the media.db binary file in the project
- Set up initial database schema and structure for media storage
- Prepare groundwork for media data management functionality
2025-10-13 03:01:02 +00:00
tigeren 96541956b5 docs(docs): update documentation with new streaming features and performance plans
- Remove obsolete standalone feature docs and integrate their summaries into docs organization
- Add media streaming features including external player auto-launch and .ts file handling fixes
- Document FFmpeg process management and progress bar fixes in media streaming-root section
- Introduce comprehensive 5-phase performance optimization plan with API pagination and virtual scrolling
- Update feature status to reflect completion and planning states of media streaming and performance features
- Enhance README with additional streaming capabilities and forthcoming performance improvements
- Reorganize active documentation categories for clearer navigation and categorization
2025-10-13 03:00:10 +00:00
tigeren 067c7e8e01 docs(README): overhaul project documentation with detailed overview
- Rewrite README to present NextAV as a production-ready media library system
- Add comprehensive feature list covering core and advanced features
- Include architecture details: frontend, database, media processing, deployment
- Document database schema with table descriptions
- Describe API endpoints with coverage and counts
- Detail UI/UX features: sidebar, video cards, player, folder viewer
- Explain deployment setup: Docker multi-stage builds and private registry
- List performance optimizations: virtual scrolling, caching, Turbopack
- Provide build status and compilation details
- Outline documentation structure and development workflow rules
- Define current and future development priorities with sprint plans
- Summarize validation status and readiness for production use
2025-10-13 02:47:42 +00:00
tigeren 3601add44c chore(docs): update docker image version in deployment instructions
- Change docker image tag from 1.4 to 1.5 in deployment guide
- Update corresponding docker push command with new tag

style(surprise-me): adjust page container height and overflow

- Replace min-h-screen with fixed h-screen for full viewport height
- Add overflow-y-auto to enable vertical scrolling within the page container
- Maintain existing background color and header styles unchanged
2025-10-13 01:42:48 +00:00
tigeren 5ed3640733 feat(media-access): add media access tracking endpoint and database support
- Implement POST /api/media-access/[id]/route to track media access events: view, play, bookmark, rate
- Validate media ID and access type input with appropriate error responses
- Persist media access records in new media_access table with associated media ID and timestamp
- Add indexes on media_access for efficient querying by media ID, access type, and timestamp
- Export helper functions to track and query media access counts and recent accesses
- Add "Surprise Me" navigation link with icon in sidebar component for new discovery feature
2025-10-12 12:29:34 +00:00
tigeren dd3eb91fbe docs(readme): add Surprise Me video recommendation feature documentation
- Introduce "Surprise Me" as a new video recommendation system for personal video discovery
- Add detailed quick links including guides, summaries, design, architecture, and implementation examples
- Reorganize documentation overview to include Surprise Me above Library Cluster feature
- Update documentation statistics reflecting increased total documents and size
- Update current project focus including Surprise Me as top priority
- Add new documentation entry for Surprise Me on recent changes list
- Bump documentation version to 1.1 and update last modified date accordingly

docs(archive): update Docker image tag for build and push commands

- Change Docker image tag from version 1.3 to 1.4 in deployment instructions
2025-10-12 12:05:59 +00:00
tigeren a31973ea46 feat(sidebar): add collapsible toggle for libraries section
- Introduce `showLibraries` state to control libraries visibility
- Replace library header div with a toggle button
- Add rotate animation to the ChevronRight icon when expanded
- Conditionally render libraries list based on toggle state
- Maintain consistent styling for collapsed and expanded views
- Preserve link and button structure for each library item
2025-10-12 09:15:09 +00:00
tigeren 7d8694b6f5 feat(clusters): add bookmark and rating features to video player
- Enable display of bookmarks and ratings in the player UI
- Add handlers for bookmarking and unbookmarking actions
- Implement rating functionality with corresponding event handler
- Enhance user interaction by integrating these new controls
- Improve state management related to video selection and player display
2025-10-12 09:09:28 +00:00
tigeren 335f47549a feat(api): include rating and bookmark metadata in media queries
- Add bookmark_count, avg_rating, and star_count fields to photo, video, and text queries
- Join bookmarks and stars tables to aggregate counts and average ratings
- Use COALESCE to ensure default values for missing metadata are zero
- Update folder contents handler to use actual thumbnail path from database instead of conditional URLs
2025-10-12 09:03:17 +00:00
tigeren ce61ebbf9e feat(clusters): add folder view tab with backend and frontend support
- Implement `/api/clusters/[id]/folders` endpoint for folder navigation with pagination and error handling
- Create ClusterFolderView component for folder tab UI with breadcrumb and cluster theming
- Enhance VirtualizedFolderGrid to support cluster API mode and handle cluster folder responses
- Integrate folder view as default tab on cluster page with navigation and state management
- Add comprehensive testing documentation and handle loading, empty, and error states in UI
2025-10-12 07:56:15 +00:00
tigeren 0d6d2730bc feat(clusters): add cluster navigation UI and cluster view page with media tabs
- Add "Clusters" collapsible section in sidebar with color-coded icons
- Implement client cluster fetching and navigation links in sidebar
- Create cluster view page with header, stats cards, and tabbed media interface
- Integrate media player modals for video, photo, and text viewing
- Enhance InfiniteVirtualGrid to support custom API endpoints and response formats
- Refactor cluster API routes query params variable naming for consistency
- Add search and loading/error handling within cluster media pages
- Implement bookmark and rating functionality within cluster media grid
- Ensure responsive design and active state highlighting in sidebar and cluster pages
- Update library cluster progress documentation to reflect Phase 3 completion status
2025-10-12 06:14:01 +00:00
tigeren 4306d4ace8 feat(cluster): implement cluster management and library clustering UI
- Add database tables for clusters and library-cluster mappings with indexes
- Create REST API endpoints for cluster CRUD and library assignments
- Develop ClusterManagement component for create/edit/delete clusters with color/icon picker
- Implement multi-select library assignment and real-time statistics display
- Add LibraryClusterBadges component to show color-coded cluster badges on library cards
- Integrate cluster management UI into settings page with loading states and validation
- Enhance API input validation and error handling for cluster operations
- Document design decisions, performance considerations, and next steps for navigation features
2025-10-11 17:17:07 +00:00
tigeren f92e44db93 feat(db): add cluster feature with related database tables and indexes
- Define TypeScript interfaces for Cluster, ClusterWithStats, and LibraryClusterMapping
- Create clusters table with fields for name, description, color, icon, and timestamps
- Create library_cluster_mapping table to link libraries and clusters with foreign keys and unique constraint
- Add indexes on library_cluster_mapping and clusters tables for improved query performance
2025-10-11 17:03:14 +00:00
tigeren 573efb8003 docs(deployment): update Docker image tag to 1.3 in deployment guide
- Changed Docker build and push commands to use tag 1.3 instead of latest
- Updated private registry image reference accordingly
- Improved version specificity in documentation for deployment process
2025-10-11 16:24:41 +00: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 ac06835850 feat(folder-bookmarks): add folder bookmarks feature with migration support
- Introduce new folder_bookmarks table with unique folder_path and timestamp fields
- Implement API endpoints for folder bookmarks CRUD operations
- Enhance bookmarks API to combine and paginate media and folder bookmarks
- Update bookmarks page UI to handle and display folder bookmarks
- Add folder viewer support for bookmarking current folder with toggle functionality
- Create automated migration script with backup, schema verification, and rollback instructions
- Provide detailed migration guides for manual and Docker deployments
- Add comprehensive testing and verification steps for migration and new feature integration
2025-10-10 15:31:45 +00:00
tigeren 76154123b8 feat(player): add external video player auto-launch feature with preferences
- Implement player preferences management with localStorage and events
- Enable auto-launch and confirmation dialogs in LocalPlayerLauncher component
- Learn user preferences from manual player selections dynamically
- Integrate settings UI for video player configuration and real-time updates
- Support platform-aware player listing and reset to default preferences
- Provide clear current configuration display and toggle switches in settings
- Enhance user experience with smart defaults and customizable workflow
- Maintain backward compatibility with manual player selection option
- Add custom event system for cross-component synchronization of preferences
- Optimize player detection and launching logic to respect user settings
2025-10-04 16:59:17 +00:00
tigeren d048cb3b82 fix(video-format-detector): temporarily redirect .ts files to local player
- Disabled .ts from TS_STREAM_FORMATS to prevent HLS resegmentation issues
- Added explicit handling to send .ts files to external local video players
- Enhanced user messaging explaining the temporary workaround
- Ensured seamless playback via existing external streaming API with range support
- Minimized code changes for easy reversal once HLS streaming is fixed
- Documented the temporary fix, user experience, and reverting steps
2025-10-04 15:51:04 +00:00
tigeren 048ed1b4e6 fix(video-format-detector): temporarily route .ts files to local player
- Add temporary fix to send .ts files to local player due to HLS resegmentation issues
- Disable .ts format in MPEG Transport Stream (TS_STREAM_FORMATS) for HLS streaming
- Log handling of .ts files in format detection for clarity
- Update local player format creation with specific warning message for .ts files
- Extend LIMITED_SUPPORT_FORMATS check to include .ts as a temporary measure
- Add TODO notes to revert changes once .ts HLS implementation is fixed
2025-10-04 15:17:19 +00:00
tigeren e019389770 feat(player): improve HLS player cleanup and session management
- Add support for releasing HLS session references via API cleanup route
- Extend HLS cleanup API to handle 'release_reference' and 'force_cleanup' actions
- Refactor WebDAV API to handle PROPFIND method via POST with x-webdav-method header
- Replace PROPFIND handler with GET and POST handlers for better WebDAV compatibility
- Add comprehensive cleanup of HLS instances, players, and error handlers on unmount and modal close
- Implement immediate stop and destroy of HLS instance when modal closes
- Automatically release backend HLS session reference on modal close via cleanup API call
- Improve logging throughout cleanup and error handling processes
2025-10-04 14:36:19 +00:00
tigeren 4489fc5381 fix(hls): improve buffering and error handling in HLS player
- Adjust Hls.js config
2025-10-01 17:20:21 +00:00
tigeren fef8f57e9b feat(hls): implement dynamic FFmpeg segmentation for merged .ts files
- Add tsSegmentationService to detect and re-segment merged .ts files using FFmpeg
- Create HLSSessionManager to manage segmentation sessions with heartbeat and TTL
- Enhance HLS playlist route to serve either virtual or FFmpeg-segmented playlists
- Update segment route to serve FFmpeg-generated segments with proper caching headers
- Add manual cleanup API for forced session cleanup and status inspection
- Implement global HLS status endpoint with session and segmentation metrics
- Introduce session lifecycle management with auto cleanup and error handling
- Provide detailed logging for session creation, heartbeat, cleanup, and errors
- Configure segment duration, temp directory, concurrency limits, and cleanup intervals
- Ensure fallback to virtual segmentation on errors or unsupported cases
- Document MPEG-TS protocol issues with naive merging and correct segmentation approach
- Plan phased migration for scalable production readiness and monitoring integration
2025-10-01 15:40:23 +00:00
tigeren d54af0289f feat(streaming): add .ts file HLS streaming and container conversion support
- Implement virtual HLS playlist generation for .ts files as multi-segment streams
- Serve .ts files in virtual 2MB segments with proper byte-range handling
- Enhance existing HLS playlist route to support .ts files as single or multi-segment streams
- Improve segment route to serve .ts segments using stream slicing and abort handling
- Add comprehensive API endpoint for converting .ts files to .mp4 containers
- Implement fast container remuxing using FFmpeg without re-encoding
- Provide analysis of .ts files for conversion suitability based on codec compatibility
- Return detailed error messages and alternatives when HLS streaming unsupported for non-.ts formats
- Update HLS playlist URLs to absolute paths with protocol and host for external access
- Add caching and CORS headers for HLS segments and playlists
- Include thorough logging for debugging HLS segment requests and conversion processes
2025-09-29 19:21:46 +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 20c518a680 add new plan 2025-09-28 17:37:28 +00:00
tigeren 9a4c327d38 refactor(docs): remove deprecated process management and progress bar guides
- Delete obsolete markdown documentation on transcoding process management
- Remove detailed explanation of reliable termination strategies in Go and Next.js
- Eliminate legacy progress bar accuracy anti-jitter mechanisms content
- Remove Next.js adaptation guide covering process pools and graceful shutdown
- Clean up all related implementation code snippets and architecture comparisons
- Streamline documentation to avoid confusion with newer implementations
2025-09-22 17:40:59 +00:00
tigeren 9ccc88d5ee style(sidebar): improve layout and add custom scrollbar styling
- Add custom scrollbar styles for sidebar with hover transitions
- Set fixed height and overflow hidden on sidebar container for consistent layout
- Add overflow-hidden to main content wrapper for better scroll handling
- Update navigation and library sections to use flex layout with proper overflow control
- Add scrollbar with custom style to libraries list for better UX during scrolling
- Ensure sidebar and its elements adapt properly when collapsed or expanded
2025-09-21 16:46:18 +00:00
tigeren b8b46fcf0e feat(stars): add DELETE endpoint and support rating removal
- Implement DELETE /api/stars to remove star ratings by mediaId
- Update media's star count and average rating on deletion
- Modify frontend rating handlers to support unstarring by sending DELETE requests
- Update multiple pages to handle rating removal when rating is zero
- Adjust photo viewer to toggle rating off if same rating clicked
- Improve error handling and success responses for star rating API interactions
2025-09-21 15:06:52 +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 8f652fdf08 fix(artplayer-wrapper): allow toggling rating by clicking the same star
- Modify handleStarClick to cancel rating when clicking the current rating again
- Update local average rating based on toggle logic
- Add localAvgRating as dependency to useCallback hook to keep updated state
2025-09-21 11:48:22 +00:00
tigeren dd08765ab9 refactor(player): remove bookmark and rating UI layers and optimize handlers
- Remove custom bookmark and rating control layers from player UI
- Refactor bookmark toggle logic to update state functionally
- Simplify rating click handler to use functional state update
- Adjust effect dependencies to exclude local bookmark and rating states
- Improve code clarity and maintainability for bookmark and rating features
2025-09-21 11:41:15 +00:00
tigeren 74980b5059 feat(media): add bookmark feature and rating improvements
- Extend media database query to include bookmark count with LEFT JOINs
- Add bookmark_count property to media file types and UI components
- Implement bookmark add and remove handlers with API calls
- Enhance video player overlay to show bookmark button and rating stars
- Update ArtPlayerWrapper for interactive 5-star rating and bookmark toggling
- Modify folder viewer and virtualized media grid to display bookmark counts
- Simplify video player debug to always use ArtPlayer and show static support info
2025-09-21 07:47:59 +00:00
tigeren ced8125224 fix(artplayer): prevent body and player scrollbars when video player is open
- Add effect to disable body scroll by setting overflow to hidden when player is open
- Restore original body overflow styles on player close
- Add overflow-hidden and scrollbar hiding styles to player container
- Apply CSS rules to hide scrollbars on artplayer container and all child elements
- Set inline styles to suppress scrollbars in player elements on different browsers
2025-09-21 06:37:45 +00:00
tigeren 73e94159c6 fix(artplayer): remove unnecessary preload metadata setting
- Deleted preload attribute to prevent potential blurriness issues
- Cleared poster attribute to avoid interference with video display
- Maintained airplay and loop settings unchanged
2025-09-21 06:32:21 +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 86f4d47be1 style(artplayer): remove shadows and enhance custom controls
- Inject custom global styles to remove shadows and filters from all ArtPlayer elements
- Adjust ArtPlayer controls to have transparent backgrounds and no drop shadows
- Style play button and state controls with subtle hover effects and centered background
- Update bookmark and rating controls layout and appearance with conditional rendering
- Modify position and z-index of custom controls for better UI alignment
- Add format info display that adapts visibility when loading
- Fix error indicator position to avoid overlapping with custom controls
- Clean up injected styles on component unmount to prevent residue
2025-09-20 17:21:21 +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