Ingest tool for the Panasonic stereo 3D camcorders AG-3DP1 (P2, MXF) and AG-3DA1 (AVCHD, MTS): copies both eyes from the cards, renames them by scene/shot/take and prepares them for DaVinci Resolve.
I built it for my own workflow. Hardly anyone shoots stereo 3D with these cameras today, but if you still work with them or need to rescue old footage, it may help.
- Pairs left and right eye automatically (P2 via the clip UMID, AVCHD via recording time and timecode)
- Logging with hotkeys, files are renamed to
Project_S01_E02_T003_L - Copy with progress, optional checksum verification (MD5, xxHash, SHA-256) with MHL and HTML report
- Lossless MOV output with timecode and audio, readable by Resolve without extra steps
- Timecode CSV for Resolve when copying the camera files 1:1
- Manifest per project: clips already copied are recognised, a missing eye can be added later
- Checks before start: free space, existing files, duplicate names
Download 3DCam2Post.exe from Releases and run it. FFmpeg is included, nothing else needs to be installed.
The exe is not code-signed, so Windows SmartScreen may show a warning on first start (More info → Run anyway).
From source (Python 3.10+), ffmpeg must be in the system path or next to main.py:
pip install -r requirements.txt
python main.py
Build the executable yourself with .\build.ps1 (requires pip install pyinstaller, bundles the ffmpeg.exe found in the path).
- Choose root folder, project name and shooting day at the top.
- Add source: select a card or folder (searched for
CONTENTS/VIDEOandPRIVATE/AVCHD/BDMV/STREAM). - Log the clips: set scene/shot/take, confirm with
→. - Start ingest.
| Key | Action |
|---|---|
→ |
Confirm clip with current scene/shot/take, next clip, take +1 |
S |
Next scene (shot and take reset to 1) |
E |
Next shot (take resets to 1) |
T |
Take +1 |
↑ / ↓ |
Select clip |
Del / Backspace |
Toggle transfer |
Enter / Esc |
Leave a text field (hotkeys are paused while typing) |
| Mode | Result |
|---|---|
| 1:1 copy | Camera files renamed, P2 card structure kept. Timecode for Resolve via Resolve_Timecode_Import.csv |
| 1:1 copy + MOV | Additionally one .mov per eye in SCHNITT/ |
| MOV only | Only .mov files (saves space, no 1:1 copy of the camera files) |
The MOV contains picture and audio rewrapped without re-encoding, plus a timecode track.
Background: Resolve shows timecode 00:00:00:00 for both cameras. With the 3DP1 this happens as soon as Resolve links the video MXF with its separate audio MXFs (also on untouched cards). The 3DA1 stores timecode only inside the H.264 stream.
Importing the CSV in Resolve (1:1 mode): add the clips to the Media Pool, then File → Import Metadata To → Media Pool, select the CSV, Match using: File Name.
<root>/<project>/
Tag_01/ (or Szene_01, see settings)
LINKS/ RECHTS/ left / right eye
SCHNITT/ MOV files in mode "1:1 copy + MOV"
ingest_manifest.json
Resolve_Timecode_Import.csv
Report_<project>_<date>.html, Transfer_<date>.mhl (with verification)
Settings are stored in %APPDATA%\3DCam2Post\ingest_config.json, the log file next to it.
GPL-3.0, see LICENSE. Bundled third-party components are listed in THIRD_PARTY_NOTICES.md.
Ingest-Tool für die Panasonic-Stereo-3D-Camcorder AG-3DP1 (P2, MXF) und AG-3DA1 (AVCHD, MTS): kopiert beide Augen von den Karten, benennt sie nach Szene/Einstellung/Take um und bereitet sie für DaVinci Resolve vor.
Ich habe es für meinen eigenen Workflow gebaut. Mit diesen Kameras dreht heute kaum noch jemand in 3D, aber wer noch damit arbeitet oder altes Material retten muss, kann es vielleicht brauchen.
- Ordnet linkes und rechtes Auge automatisch zu (P2 über die Clip-UMID, AVCHD über Aufnahmezeit und Timecode)
- Loggen per Hotkeys, Umbenennung nach
Projekt_S01_E02_T003_L - Kopieren mit Fortschritt, optional Prüfsummen-Verifizierung (MD5, xxHash, SHA-256) mit MHL- und HTML-Report
- Verlustfreie MOV-Ausgabe mit Timecode und Ton, die Resolve ohne Zusatzschritt liest
- Timecode-CSV für Resolve bei 1:1-Kopie der Kameradateien
- Manifest pro Projekt: bereits kopierte Clips werden erkannt, ein fehlendes Auge kann später ergänzt werden
- Prüfungen vor dem Start: freier Speicher, vorhandene Dateien, doppelte Namen
3DCam2Post.exe unter Releases herunterladen und starten. FFmpeg ist enthalten, sonst muss nichts installiert werden.
Die EXE ist nicht signiert, daher kann Windows SmartScreen beim ersten Start warnen (Weitere Informationen → Trotzdem ausführen).
Aus dem Quellcode (Python 3.10+) muss ffmpeg im Systempfad oder neben main.py liegen:
pip install -r requirements.txt
python main.py
Die EXE selbst bauen: .\build.ps1 (benötigt pip install pyinstaller, packt das ffmpeg.exe aus dem Systempfad mit ein).
- Oben Stammordner, Projektname und Drehtag festlegen.
- Quelle hinzufügen: Karte oder Ordner wählen (gesucht wird nach
CONTENTS/VIDEOundPRIVATE/AVCHD/BDMV/STREAM). - Clips loggen: Szene/Einstellung/Take setzen, mit
→bestätigen. - Ingest starten.
| Taste | Aktion |
|---|---|
→ |
Clip mit aktueller Szene/Einst./Take bestätigen, nächster Clip, Take +1 |
S |
Nächste Szene (Einst. und Take auf 1) |
E |
Nächste Einstellung (Take auf 1) |
T |
Take +1 |
↑ / ↓ |
Clip wählen |
Entf / Backspace |
Transfer an/aus |
Enter / Esc |
Textfeld verlassen (beim Tippen sind die Hotkeys pausiert) |
| Modus | Ergebnis |
|---|---|
| 1:1-Kopie | Kameradateien umbenannt, P2-Kartenstruktur bleibt erhalten. Timecode für Resolve über Resolve_Timecode_Import.csv |
| 1:1-Kopie + MOV | Zusätzlich pro Auge eine .mov in SCHNITT/ |
| Nur MOV | Nur .mov-Dateien (spart Platz, keine 1:1-Kopie der Kameradateien) |
Die MOV enthält Bild und Ton ohne Neukodierung umverpackt, dazu eine Timecode-Spur.
Hintergrund: Resolve zeigt bei beiden Kameras Timecode 00:00:00:00. Bei der 3DP1 passiert das, sobald Resolve die Video-MXF mit den separaten Ton-MXFs verknüpft (auch bei unveränderten Karten). Die 3DA1 speichert den Timecode nur im H.264-Datenstrom.
CSV in Resolve importieren (1:1-Modus): Clips in den Media Pool legen, dann File → Import Metadata To → Media Pool, CSV wählen, Match using: File Name.
<Stammordner>/<Projekt>/
Tag_01/ (oder Szene_01, siehe Einstellungen)
LINKS/ RECHTS/ linkes / rechtes Auge
SCHNITT/ MOV-Dateien im Modus „1:1-Kopie + MOV“
ingest_manifest.json
Resolve_Timecode_Import.csv
Report_<Projekt>_<Datum>.html, Transfer_<Datum>.mhl (mit Verifizierung)
Die Einstellungen liegen unter %APPDATA%\3DCam2Post\ingest_config.json, die Logdatei daneben.
GPL-3.0, siehe LICENSE. Mitgelieferte Fremdkomponenten stehen in THIRD_PARTY_NOTICES.md.