Videos reparieren

Defekte Videos kann mencoder reparieren. Mittels apt-get ist dieses Programm schnell installiert.

1
sudo apt-get install mencoder

Der folgende Aufruf versucht das Video input.avi zu reparieren. Das Ergebnis wird unter output.avi gespeichert.

1
mencoder -idx input.avi -ovc copy -oac copy -o output.avi

Dabei stellt mencoder den Index wieder her und kopiert die Film- und Tonspur.

Für die ganze Filmsammlung eignet sich das folgende Script repair_movies.sh:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/bin/sh
 
#functions
f_suffix()
{
	echo "${1##*.}"
}
 
 
#parameters
if [ $# -eq 1 ]
then 
	#parameter
	path="$1"
else
	#default
	path="/data/media/movies"
fi
 
 
#main
find "$path" -not -name '*.fixed.*' \( -iname '*.avi' -or -iname '*.mpg' -or -iname '*.mpeg'  \)  -type f | \
while read i
do
	suffix=$(f_suffix "$i")
	filename_out="${i%.avi}.fixed.${suffix}"
	filename_tmp="${i}.tmp"	
 
	echo "Repair file ${i}"
 
	#remove old temp file
	if [ -f $filename_tmp ]
	then
		echo "rm ${filename_tmp}"
		rm "${filename_tmp}"
 
	fi
 
	if [ -f $filename_out ]
	then
		#file is fixed, remove original file
                echo "rm ${i}"
                rm "${i}"
	else
		#repair video file
		mencoder -idx "$i" -ovc copy -oac copy -o "${filename_tmp}"
 
		#remove source file only, if mencoder was successfully finished
		if [ $? -eq 0 ]
		then
			mv "${filename_tmp}" "${filename_out}"
 
			#delete original movie
			echo "rm ${i}"
			rm "${i}"
		fi
	fi
 
done

Im Moment verarbeitet das Script nur avi, mpeg und mpg Dateien (case insensitiv), lässt sich aber leicht erweitern. Zur Sicherheit kann der Teil, der das Orginalvideo löscht, auskommentiert werden.

4 Gedanken zu “Videos reparieren

  1. Hi,

    was genau repariert mencoder denn da?
    Sind das Filme die überhaupt nicht abgespielt werden können, oder solche welche z.B. irgendwie zu schell ablaufen, keinen Ton haben oder ruckelig wie fliegende Diashows ablaufen?
    Ich bitte um eine präzisere Darstellung dessen,w as da repariert wird, Danke.
    Ice

    • Beim Abspielen der kaputten Videos setzt bei meinem Blue Ray von Sony der Ton an der Schnittstelle (mit avidemux geschnitten) aus. Dieses Problem löst mencoder. Auch lassen sich dann Filme abspielen, die z.B. Totem nicht verarbeiten wollte.

      Gruß Klaus

      • Bei mir hats auch geholfen: eine defekte AVI-Datei wurde repariert. Offenbar wird einfach eine Kopie mit einem korrektem Index produziert.
        Grüße
        Reine

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>