Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
c3tracker:repair [2019/01/02 21:55] – [Copyright aus audio mit hilfe von YouTube entfernen] atze | c3tracker: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 " | Zum Reparieren der Timestamps wird das vorhandene, aber " | ||
- | ffmpeg -i / | + | ffmpeg -i /video/fuse/ |
Anschließend mit dem Reparaturprozess (nächster Abschnitt) fortfahren. | Anschließend mit dem Reparaturprozess (nächster Abschnitt) fortfahren. | ||
Line 27: | Line 27: | ||
== Manually repairing a Recording (TS) | == Manually repairing a Recording (TS) | ||
- | 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. 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 '' | + | Die Vorgehensweise wird vom Tracker etwas unterstützt. Das Material ist als handelsübliche Videodatei (z.B. MPEG2-TS, h264 mp4) im Verzeichnis '' |
Direkt im Anschluss kann/muss das Ticket nochmal geschnitten werden, also den Cutting-Status durchlaufen. Es wird **nur** der Status im Tracker durchlaufen, | Direkt im Anschluss kann/muss das Ticket nochmal geschnitten werden, also den Cutting-Status durchlaufen. Es wird **nur** der Status im Tracker durchlaufen, | ||
Line 35: | Line 35: | ||
Ab hier läuft dann die Pipeline ganz normal weiter. | Ab hier läuft dann die Pipeline ganz normal weiter. | ||
- | === Convert to TS | + | Wenn es einen Fuse/ |
+ | |||
+ | === Camera backup Audio stereo to 2x stereo | ||
+ | |||
+ | Soll der Kameraton benutzt werden liegt dieser meist als L: original R: translation vor. Das muss im repair.ts auf 2 stereo streams geaendert werden das sollte mit dieser zeile funktionieren: | ||
+ | < | ||
+ | ffmpeg -i repair_rl.ts -filter_complex " | ||
+ | </ | ||
+ | |||
+ | == Hints for repairing / manual cutting with KDEnlive | ||
+ | |||
+ | Die grundsätzliche Bedienung von KDEnlive wird hier nicht erklärt. Es ist zu beachten, dass KDEnlive (derzeit) nicht in der Lage ist, mehrere Video- oder Audiospuren zu exportieren. Für Slide-Video-Spuren oder übersetztes Audio muss man also mehrfach exportieren und die Dateien am Ende zu einer Repair- oder Masterdatei zusammenmuxen. | ||
+ | |||
+ | Ab ca. KDEnlive Version 17.x werden nicht mehr die vom MLT Framework mitgelieferten Exportprofile in der GUI zur Verfügung gestellt, sondern eine geringere Zahl von Profilen von KDEnlive selbst verwaltet. Es können custom Profile konfiguriert werden, diese werden in ~/ | ||
+ | |||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | **Achtung** da die Software " | ||
+ | |||
+ | === 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/ | ||
+ | |||
+ | == Convert to TS | ||
(Not necessary for repairing) | (Not necessary for repairing) | ||
Line 50: | Line 79: | ||
</ | </ | ||
- | === remux TS file | + | == remux TS file |
< | < | ||
ffmpeg -v verbose -y \ | ffmpeg -v verbose -y \ | ||
Line 56: | Line 85: | ||
-c copy \ | -c copy \ | ||
-f mpegts / | -f mpegts / | ||
- | </ | + | </ |
== Audiospur bearbeiten | == Audiospur bearbeiten | ||
Line 74: | Line 104: | ||
< | < | ||
- | ffmpeg -threads 0 -i / | + | ffmpeg -threads 0 -i / |
</ | </ | ||
+ | Weitere Audiospuren als nicht default markieren: | ||
+ | < | ||
+ | ffmpeg -i 10223-hd.mp4.orig -i / | ||
+ | </ | ||
+ | |||
+ | Manuelles AV/Delay mit ffmpeg von 200ms korrigieren: | ||
+ | < | ||
+ | ffmpeg -i 10397-hd-async.mp4 -itsoffset 0.200 -i 10397-hd-async.mp4 -c copy -map 0:v:0 -map 0:v:1 -map 1:a:0 -map_metadata 0 10397-hd.mp4 | ||
+ | </ | ||
== Copyright aus audio mit hilfe von YouTube entfernen | == Copyright aus audio mit hilfe von YouTube entfernen | ||
Line 88: | Line 127: | ||
* heruntergeladenes audio in das master HD muxen | * heruntergeladenes audio in das master HD muxen | ||
* mit ffmpeg manuell: | * mit ffmpeg manuell: | ||
- | ffmpeg -i 35c3-9999-eng-deu-spa-The_Enemy_hd.mp4 -i 9999-eng-rB9RDJxv71E.m4a -i 9999-deu-dDB7BWfnugs.m4a -i 9999-spa-Xyiczc061RQ.m4a -c copy -map ' | + | |
* oder direkt mit dem remux commando aus dem tracker jobfile das normalerweise fuer das auphonic remux verwendet wird | * oder direkt mit dem remux commando aus dem tracker jobfile das normalerweise fuer das auphonic remux verwendet wird | ||
Line 120: | Line 159: | ||
Now place a '' | Now place a '' | ||
+ | |||
+ | == Cut the last second off a recording | ||
+ | |||
+ | When the outro has additional frames (bacause of a non empty output folder after a --debug run) the files can be shortened by downloading them from media and using the fowllowing script. | ||
+ | |||
+ | < | ||
+ | #!/bin/bash | ||
+ | |||
+ | EXT=" | ||
+ | |||
+ | for video in *${EXT}; do | ||
+ | echo " | ||
+ | DURATION=$(ffprobe -v quiet -print_format json -show_format $video | jq ' | ||
+ | DURATIONX2=$(ffprobe -v quiet -print_format json -show_format $video | jq ' | ||
+ | |||
+ | VIDEONAME=$(basename $video ${EXT}) | ||
+ | REPAIRNAME=repair/ | ||
+ | echo "OLD: $DURATION" | ||
+ | echo "NEW: ${DURATIONX2}" | ||
+ | echo ffmpeg -hide_banner -t $DURATIONX2 -i ${VIDEONAME}${EXT} -map 0 -c copy ${REPAIRNAME} | ||
+ | ffmpeg -hide_banner -t $DURATIONX2 -i ${VIDEONAME}${EXT} -map 0 -c copy ${REPAIRNAME} | ||
+ | done | ||
+ | </ | ||
+ | |||
+ | == 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. | ||
+ | |||
+ | < | ||
+ | import os | ||
+ | import sys | ||
+ | |||
+ | files = os.listdir('/ | ||
+ | relive_folder = '/ | ||
+ | fuse_folder = '/ | ||
+ | |||
+ | i = 0 | ||
+ | |||
+ | for file in files: | ||
+ | filename = relive_folder+sys.argv[1]+'/' | ||
+ | if filename[-3: | ||
+ | file = file.split(' | ||
+ | new_filename = relive_folder+sys.argv[1]+'/ | ||
+ | os.rename(filename, | ||
+ | i += 1 | ||
+ | |||
+ | print(" | ||
+ | </ | ||
+ | |||