Repository navigation
feat(media): read Dahua DVR .dav recordings through FFmpeg - #665
Merged
Merged
Conversation
.dav is a read-only video format, read by FFmpeg's dhav demuxer (found by the DHAV chunks, no -f needed) and converted to every video and audio target. A reporter's Dahua recording (H.264 1080p + AAC) probes as dhav and converts to MP4. Settings schema 49 teaches existing video donuts .dav. The engine test builds a DHAV recording from FFmpeg-made H.264 and A-law sound, since FFmpeg has no DHAV muxer; no sample file is committed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tensions (#663) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6 of 12 tasks
KnifeLemon
pushed a commit
that referenced
this pull request
Oct 27, 2026
Schema 50 is .dav (#665) on main now; Edit pictures stays v51. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0164CyGuw3uFmErecYsXqr26
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this change?
Adds
.dav(Dahua and similar DVR / NVR recordings) as a read-only video format. FFmpeg'sdhavdemuxer reads it; probing finds theDHAVchunks on its own, so no-f dhavis needed. It converts to every video and audio target like the other read-only containers (.usm,.m4s). Settings schema 50 teaches existing video donuts.dav(custom claims stay put). README format counts go from 266 to 267.Schema 49 went to the text extensions in #663, so this takes 50.
Closes #594
Type of change
How was it tested?
dotnet format --verify-no-changesdotnet test(Filee.Core.Tests: 634 passed, 3 skipped; the DAV / M4S / USM tests inMediaTestspass with Filee's FFmpeg 9.0.2 installed)ffprobereports formatdhav, andfilee-cli convert … --to mp4made an MP4 with all 120 video frames and the sound (video copied, 5.72 s). The sample is not in the repo.New tests:
DavFormatTests(Core):.davis detected as read-only video on the video donut; schema 49 → 50 adds it once.MediaTests.Dav_recordings_are_read_but_never_written: routedav → mp4is one FFmpeg step, nothing converts todav.MediaTests.A_dahua_dav_recording_converts_to_mp4: FFmpeg has no DHAV muxer, so the test writes a DHAV recording from FFmpeg-made H.264 frames and G.711 A-law sound, checksffprobeseesdhav, then converts it to MP4 (H.264 160x120, 50 frames, AAC, ~2 s). Skipped without FFmpeg, like the other conversion tests.Screenshots (UI changes)
None, no UI changes.
Checklist
src/Filee.App/Assets/i18n/*.jsonfiles (no new UI strings)THIRD-PARTY-NOTICES.md(none added)🤖 Generated with Claude Code