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
Next revisionBoth sides next revision
c3tracker:repair [2019/10/26 11:41] andic3tracker:repair [2021/01/13 20:53] n0emis
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'' <del>(Defaultwert, wenn nicht gesetzt: ''/video/tmp/<projektslug>/repair/'')</del> 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.
Line 55: Line 55:
  
 **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+ 
 +== Convert to TS
  
 (Not necessary for repairing) (Not necessary for repairing)
Line 70: Line 71:
 </code> </code>
  
-=== remux TS file+== remux TS file
 <code> <code>
 ffmpeg -v verbose -y \ ffmpeg -v verbose -y \
Line 76: Line 77:
     -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 174:
 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.txt
  • Last modified: 2023/03/15 17:01
  • by jwacalex