c3tracker:repair

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
c3tracker:repair [2019/10/26 11:41] andic3tracker:repair [2023/03/15 17:01] (current) – [Manually repairing a Recording (TS)] jwacalex
Line 21: Line 21:
 Zum Reparieren der Timestamps wird das vorhandene, aber "kaputte" uncut.ts aus dem Fusemount nochmal mit FFmpeg remuxed, das Recordingticket muss sich also mindestens im Status "prepared" befinden, wobei kein SourceReplacement gesetzt sein darf: Zum Reparieren der Timestamps wird das vorhandene, aber "kaputte" uncut.ts aus dem Fusemount nochmal mit FFmpeg remuxed, das Recordingticket muss sich also mindestens im Status "prepared" befinden, wobei kein SourceReplacement gesetzt sein darf:
  
-  ffmpeg -i /video/event/room/1234/uncut.ts -c copy -f mpegts /video/tmp/event/repair/1234-remux.ts+  ffmpeg -i /video/fuse/event/room/1234/uncut.ts -c copy -f mpegts  -map 0:0 -map 0:1 -map 0:2 -map 0:3 /video/tmp/event/repair/1234-remux.ts
  
 Anschließend mit dem Reparaturprozess (nächster Abschnitt) fortfahren. Anschließend mit dem Reparaturprozess (nächster Abschnitt) fortfahren.
Line 29: Line 29:
 Das reparierte Material wird im gleichen Format wie das Capture zur Verfügung gestellt, also MPEG2-TS mit 4 Audiospuren etc.pp. Dabei wird im Prozess zwar noch vor dem Schnitt eingesetzt, ein Abstecken mit KDEnlive erfolgt aber **nicht** nochmal. Das Material sollte also bereits zugeschnitten sein (siehe auch nächster Abschnitt). Allerdings darf das ersetzte Material **nicht** bereits Intro oder Outro beinhalten, da dies beim Encoding angefügt wird. Das reparierte Material wird im gleichen Format wie das Capture zur Verfügung gestellt, also MPEG2-TS mit 4 Audiospuren etc.pp. Dabei wird im Prozess zwar noch vor dem Schnitt eingesetzt, ein Abstecken mit KDEnlive erfolgt aber **nicht** nochmal. Das Material sollte also bereits zugeschnitten sein (siehe auch nächster Abschnitt). Allerdings darf das ersetzte Material **nicht** bereits Intro oder Outro beinhalten, da dies beim Encoding angefügt wird.
  
-Die Vorgehensweise wird vom Tracker etwas unterstützt. Das Material ist als handelsübliche Videodatei (z.B. MPEG2-TS, h264 mp4) im Verzeichnis ''Processing.Path.Repair'' (Defaultwert, wenn nicht gesetzt: ''/video/tmp/<projektslug>/repair/''abzulegen. Dabei kann ein beliebiger Dateiname gewählt werden. Im Tracker muss dieser Dateiname (ohne den Pfad!) in die Property ''Record.SourceReplacement'' am zugehörigen Recording-Ticket eingetragen werden. Das Recording-Ticket ist anschließend auf den Status ''recorded'' zu setzen. Das Mount-Skript erkennt den Sonderfall der Reparatur, und statt eines Fuse-Mounts wird einfach ein Softlink gesetzt. **Achtung** hier ist zu beachten, dass die Encoder das Ziel des Softlinks ebenfalls erreichen können! Daher am Besten alles unter einem Verzeichnis, z.B. ''/video'' bereitstellen.+Die Vorgehensweise wird vom Tracker etwas unterstützt. Das Material ist als handelsübliche Videodatei (z.B. MPEG2-TS, h264 mp4) im Verzeichnis ''Processing.Path.Repair'' abzulegen. Dabei kann ein beliebiger Dateiname gewählt werden. Im Tracker muss dieser Dateiname (ohne den Pfad!) in die Property ''Record.SourceReplacement'' am zugehörigen Recording-Ticket eingetragen werden. Das Recording-Ticket ist anschließend auf den Status ''recorded'' zu setzen. Das Mount-Skript erkennt den Sonderfall der Reparatur, und statt eines Fuse-Mounts wird einfach ein Softlink gesetzt. **Achtung** hier ist zu beachten, dass die Encoder das Ziel des Softlinks ebenfalls erreichen können! Daher am Besten alles unter einem Verzeichnis, z.B. ''/video'' bereitstellen.
  
 Direkt im Anschluss kann/muss das Ticket nochmal geschnitten werden, also den Cutting-Status durchlaufen. Es wird **nur** der Status im Tracker durchlaufen, ein Schnitt mit KDEnlive findet **nicht** statt. Hier wäre jetzt der richtige Moment, um z.B. falsch gesetzte Sprachen/Übersetzungen nochmal zu korrigieren. Direkt im Anschluss kann/muss das Ticket nochmal geschnitten werden, also den Cutting-Status durchlaufen. Es wird **nur** der Status im Tracker durchlaufen, ein Schnitt mit KDEnlive findet **nicht** statt. Hier wäre jetzt der richtige Moment, um z.B. falsch gesetzte Sprachen/Übersetzungen nochmal zu korrigieren.
  
 Ab hier läuft dann die Pipeline ganz normal weiter. Ab hier läuft dann die Pipeline ganz normal weiter.
 +
 +Wenn es einen Fuse/Mountfehler gibt kann es sein, dass die Mounts noch aus dem alten Durchlauf schief sind.
  
 === Camera backup Audio stereo to 2x stereo === Camera backup Audio stereo to 2x stereo
Line 55: Line 57:
  
 **Achtung** da die Software "nur" libavcodec und libavformat verwendet, ist die Angabe von Filtern im Exportprofil prinzipbedingt nicht möglich. Ein Denoising, wie es in der Pipeline für die Masterfiles gemacht wird, muss als Filter auf die entsprechenden Videostücken geklickt werden! **Achtung** da die Software "nur" libavcodec und libavformat verwendet, ist die Angabe von Filtern im Exportprofil prinzipbedingt nicht möglich. Ein Denoising, wie es in der Pipeline für die Masterfiles gemacht wird, muss als Filter auf die entsprechenden Videostücken geklickt werden!
-=== Convert to TS+ 
 +=== Lokal schneiden, remote rendern 
 + 
 +Dafür muss auf dem Encoder (oder der Server auf dem gerendert wird), muss melt installiert werden: `sudo apt install melt`. Beim Schneiden mit KDEnvlive sollten die Quelldateien schon an gleicher stelle wie auf dem Encoder liegen. 
 + 
 +Wenn man fertig ist im KDEnlive auf rendern klicken, das Profil `VOC H.264 main video track with audio` auswählen, den richtigen Exportpfad setzen und auf `Generate Script` klicken. Jetzt sollte in `$HOME/Videos/kdenlive-renderqueue/` eine passende `.mlt`-Datei liegen. Diese muss nun auf den Encoder kopiert werden. Hier kann nun in einem Screen/tmux `melt $DATEINAME.mlt` gestartet werden. 
 + 
 +== Convert to TS
  
 (Not necessary for repairing) (Not necessary for repairing)
Line 70: Line 79:
 </code> </code>
  
-=== remux TS file+== remux TS file
 <code> <code>
 ffmpeg -v verbose -y \ ffmpeg -v verbose -y \
Line 76: Line 85:
     -c copy \     -c copy \
     -f mpegts /video/tmp/$EVENT/repair/${TALKID}_repair.ts     -f mpegts /video/tmp/$EVENT/repair/${TALKID}_repair.ts
-</code>+</code>können 
 == Audiospur bearbeiten == Audiospur bearbeiten
  
Line 172: Line 182:
 done done
 </code> </code>
 +
 +== ReLive to fusemount
 +
 +If you for example screwed up a recording, it could be useful to use the ReLive-Snippets as a source for the fuse-ts. This python-script might help you. The Fahplan-ID has to be given as a argument.
 +
 +<code>
 +import os
 +import sys
 +
 +files = os.listdir('/video/tmp/ber-relive/36c3/5'+sys.argv[1])
 +relive_folder = '/video/tmp/ber-relive/36c3/5'
 +fuse_folder = '/video/fuse/36c3-wikipakawg/Wikipaka/'
 +
 +i = 0
 +
 +for file in files:
 +    filename = relive_folder+sys.argv[1]+'/' + file
 +    if filename[-3:] == '.ts':
 +        file = file.split('-')
 +        new_filename = relive_folder+sys.argv[1]+'/{}-{:05d}.ts'.format(file[0], int(file[1][:-3]))
 +        os.rename(filename, new_filename)
 +        i += 1
 +
 +print("sudo umount "+fuse_folder+sys.argv[1] + ' && sudo /usr/bin/fuse-ts p="{prefix}-" c="{relive_folder}{id}" st="0000" numfiles={num} totalframes={frames} -oallow_other,use_ino "{fuse_folder}{id}"'.format(id=sys.argv[1], prefix=file[0], num=i, frames=(150*i) + 1000,relive_folder=relive_folder,fuse_folder=fuse_folder))
 +</code>
 +
 +
  • c3tracker/repair.1572082872.txt.gz
  • Last modified: 2019/10/26 11:41
  • by andi