feat(tracks): download and mux stereoscopic 3D (MV-HEVC) video to MP4

Mark 3D from REQ-VIDEO-LAYOUT, DV profile 20 codecs or an lhvC box; mux with MP4Box, decrypt with mp4decrypt, skip FFmpeg repack, sample cut and hybrid; add {3d} and env MP4Box.
This commit is contained in:
imSp4rky
2026-11-12 04:47:18 -07:00
parent a28c99b811
commit e29a523907
31 changed files with 513 additions and 67 deletions
+13
View File
@@ -476,3 +476,16 @@ def test_import_keeps_every_period_when_no_exported_period_is_left(
assert video.data["dash"]["filtered_period_ids"] == []
assert "keeping every period" in caplog.text
def test_a_3d_video_stays_3d_through_export_and_import(tmp_path: Path) -> None:
export = tmp_path / "export.json"
title = make_title()
title.tracks.videos[0].stereo = True
runner = make_dl()
for track in [*title.tracks.videos, *title.tracks.audio]:
runner.write_export(export, title, track)
assert [row.get("stereo") for row in entry(export)["tracks"]][0] is True
svc = ImportService(import_ctx(), "EXAMPLE", "movie-1", str(export))
movie = next(iter(svc.get_titles()))
assert svc.get_tracks(movie).videos[0].stereo