|
Himbrr
Anmeldungsdatum: Feb. 13, 2010
Beiträge: 35
|

21. August 2012 10:06
Moin, weiß jemand von euch, ob es eine einfache Lösung gibt, Videofiles für das iPhone zu konvertieren?
Natürlich über ssh/screen und ohne grafische Oberfläche. Wollte ffmpeg nutzen, aber ich bekam die Meldung, dass es durch avconv ersetzt wird.
Die Dateien wurden nicht erkannt. Ein Script hatte ich via Tante Google gefunden: http://www.andybreuhan.de/2009/01/05/mehrere-videos-mit-ffmpeg-fur-iphone-oder-ipod-encodieren/
Hat leider nicht funktioniert. Habt ihr eine Idee? Vielen Dank im Voraus! Grüße,
Himbrr
|
|
redknight
Moderator & Supporter
Anmeldungsdatum: Okt. 30, 2008
Beiträge: 16518
Wohnort: Lorchhausen im schönen Rheingau
|

21. August 2012 10:16
Die Dateien wurden nicht erkannt.
Nicht gerade eine aussagekräftige Fehlerbeschreibung Habt ihr eine Idee?
Wie wäre es mit avconv, welches ffmpeg ersetzt?
|
|
Himbrr
(Themenstarter)
Anmeldungsdatum: Feb. 13, 2010
Beiträge: 35
|

21. August 2012 10:19
redknight schrieb: Die Dateien wurden nicht erkannt.
Nicht gerade eine aussagekräftige Fehlerbeschreibung Habt ihr eine Idee?
Wie wäre es mit avconv, welches ffmpeg ersetzt?
Im Script habe ich ffmpeg durch avconv ersetzt. (Hoffe die Parameter bleiben gleich) Die Fehlermeldung:
| avconv version 0.8.3-4:0.8.3-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav developers
built on Jun 12 2012 16:37:58 with gcc 4.6.3
test/Käfig.avi: No such file or directory
|
|
|
redknight
Moderator & Supporter
Anmeldungsdatum: Okt. 30, 2008
Beiträge: 16518
Wohnort: Lorchhausen im schönen Rheingau
|

21. August 2012 10:26
Himbrr schrieb: Im Script habe ich ffmpeg durch avconv ersetzt. (Hoffe die Parameter bleiben gleich)
Das kann man dir erst dann sagen, wenn Du sie zeigst. Bitte beachte Richtig fragen und fange an, detailliertere Threads zu beginnen. Oder anders: MdAJHkBV-v8 Die Fehlermeldung:
Ist völlig irrelevant. Stimmen die pfade überein, etc pp
|
|
Himbrr
(Themenstarter)
Anmeldungsdatum: Feb. 13, 2010
Beiträge: 35
|

21. August 2012 10:43
Okay ich versuchs noch einmal Das genutzte Script lautet so:
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 | #!/bin/bash
if [ "$1" = "" ]
then
echo "usage: iPhone-EncDir input_directory"
exit 0
fi
MAXRATE="1450k"
VBITR=512
ABITR=96
VWIDTH=480
HASPR=480
VASPR=320
VHIGHT=$(echo "$VWIDTH/$HASPR*$VASPR" | bc)
CROPT=6
CROPB=6
CROPL=8
CROPR=8
THREADS=1
echo video bitrate: $VBITR
echo audio bitrate: $ABITR
echo video size: "$VWIDTH"x"$VHIGHT"
echo aspect ratio: $HASPR:$VASPR
echo unscaled crop "(top)": $CROPT
echo unscaled crop "(bottom)": $CROPB
echo unscaled crop "(left)": $CROPL
echo unscaled crop "(right)": $CROPR
for i in $( ls "$1" ); do
IFILE="$1""$i"
OFILE="$i".mp4
avconv -an -pass 1 -i "$IFILE" -croptop "$CROPT" -cropbottom "$CROPB" -cropleft "$CROPL" -cropright "$CROPR" -s "$VWIDTH"x"$VHIGHT" -aspect "$HASPR":"$VASPR" -vcodec libx264 -flags +loop -cmp +chroma -partitions +parti4x4+partp4x4+partp8x8+partb8x8 -subq 1 -trellis 0 -refs 2 -coder 0 -me_range 24 -g 250 -keyint_min 30 -sc_threshold 40 -i_qfactor 0.71 -flags2 -bpyramid-wpred-mixed_refs-dct8x8+fastpskip -b "$VBITR"k -minrate 75k -maxrate $MAXRATE -bufsize 10M -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.75 -qmin 10 -qmax 51 -qdiff 9 -level 30 "$OFILE" && rm "$OFILE"
avconv -i "$IFILE" -acodec libfaac -ab "$ABITR"k -ar 44100 -pass 2 -deinterlace -croptop "$CROPT" -cropbottom "$CROPB" -cropleft "$CROPL" -cropright "$CROPR" -s "$VWIDTH"x"$VHIGHT" -aspect "$HASPR":"$VASPR" -vcodec libx264 -flags +loop -cmp +chroma -partitions +parti4x4+partp4x4+partp8x8+partb8x8 -subq 1 -trellis 2 -refs 4 -coder 0 -me_range 24 -g 250 -keyint_min 30 -sc_threshold 40 -i_qfactor 0.71 -b "$VBITR"k -minrate 75k -maxrate $MAXRATE -bufsize 10M -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.75 -qmin 10 -qmax 51 -qdiff 9 -level 30 "$OFILE" && mv "$IFILE" /home/oem/e/encoding/encoded/"IFILE" && rm ffmpeg2pass-0.log x264_2pass.log
done
|
ffmpeg habe ich durch avconv ersetzt.
Das iphone.sh Script liegt in /home/user/Downloads/
Mit dem Befehl wird es aufgerufen. test/ ist der Ordnerpfad, welcher die Dateien enthält. Dieser muss mit angegeben werden.
Leider wird bei jeder Datei folgende Fehlermeldung zurückgegeben:
Himbrr schrieb: | avconv version 0.8.3-4:0.8.3-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav developers
built on Jun 12 2012 16:37:58 with gcc 4.6.3
test/Käfig.avi: No such file or directory
|
Natürlich ändern sich die Dateinamen nach test/ .
Somit sollten die Dateien zumindest gefunden werden. Als noch ffmpeg im Script stand, wurden die Dateien/Verzeichnisse ebenfalls nicht gefunden.
Zusätzlich wurde ausgegeben, dass man avconv statt ffmpeg nutzen solle. Welche Infos benötigst du noch? Als weitere Möglichkeit sehe ich noch https://trac.handbrake.fr/wiki/CLIGuide
|
|
redknight
Moderator & Supporter
Anmeldungsdatum: Okt. 30, 2008
Beiträge: 16518
Wohnort: Lorchhausen im schönen Rheingau
|

21. August 2012 10:51
Wenn es auch mit ffmepg nicht ging, ist wohl dien Skript im Eimer. Außerdem ist eine for-Schleife mit ls böse. Entweder du machst das sauber mit
| for file in "$1"/*
do
echo "Dateiname: $file"
IFILE="$1""$i"
OFILE="$i".mp4
echo $IFILE
echo $OFILE
done
|
um überhaupt mal zu sehen, was da drin ist (bitte abgleichen). Erst wenn du den korrekten Inhalt angezeigt bekommst, kannst Du dich drum kümmern, wie du avconv/ffmpeg aufrufst. Nebenbei funktioniert der ffmpeg-Aufruf zur Zeit noch. Er wird nur irgendwann(tm) nicht mehr gehen.
|
|
Himbrr
(Themenstarter)
Anmeldungsdatum: Feb. 13, 2010
Beiträge: 35
|

21. August 2012 11:59
Das Script musste angepasst werden. |
for file in "$1"/*
do
echo "Dateiname: $file"
IFILE="$file"
OFILE="$file".mp4
echo $IFILE
echo $OFILE
done
|
Leider steht jetzt noch das .avi im Outputnamen.
Also Film.avi.mp4
Kann man ".avi" rausfiltern? Ansonsten würde das auch so passen. Vorher wurde nichts außer ".mp4" angezeigt.
|
|
redknight
Moderator & Supporter
Anmeldungsdatum: Okt. 30, 2008
Beiträge: 16518
Wohnort: Lorchhausen im schönen Rheingau
|

21. August 2012 12:27
Wenn es immer .avi ist:
| for file in "$1"/*
do
echo "Dateiname: $file"
IFILE="$file"
OFILE="${file%.avi}".mp4
echo $IFILE
echo $OFILE
done
|
|
|
Himbrr
(Themenstarter)
Anmeldungsdatum: Feb. 13, 2010
Beiträge: 35
|

21. August 2012 13:29
Danke, das hat geholfen.
Wie gehts nun weiter?
Wird der Teil mit der Schleife im anderen Script ersetzt?
|
|
redknight
Moderator & Supporter
Anmeldungsdatum: Okt. 30, 2008
Beiträge: 16518
Wohnort: Lorchhausen im schönen Rheingau
|

21. August 2012 13:33
Jetzt wissen wir (hoffentlich) dass die Pfade und Dateinamen stimmen. Also können die Echos auskommentiert werden, ab mit der Schleife ins andere Skript und der ffmpeg-befehl wieder rein. Nimm auch wirklich ffmpeg, da können wir sicher sein, von den gleichen Optionen zu reden 
|
|
Himbrr
(Themenstarter)
Anmeldungsdatum: Feb. 13, 2010
Beiträge: 35
|

21. August 2012 13:53
Okay also wir damit wir vom selben Code reden:
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 | #!/bin/bash
if [ "$1" = "" ]
then
echo "usage: iPhone-EncDir input_directory"
exit 0
fi
MAXRATE="1450k"
VBITR=512
ABITR=96
VWIDTH=480
HASPR=480
VASPR=320
VHIGHT=$(echo "$VWIDTH/$HASPR*$VASPR" | bc)
CROPT=6
CROPB=6
CROPL=8
CROPR=8
THREADS=1
echo video bitrate: $VBITR
echo audio bitrate: $ABITR
echo video size: "$VWIDTH"x"$VHIGHT"
echo aspect ratio: $HASPR:$VASPR
echo unscaled crop "(top)": $CROPT
echo unscaled crop "(bottom)": $CROPB
echo unscaled crop "(left)": $CROPL
echo unscaled crop "(right)": $CROPR
for file in "$1"/*
do
IFILE="$file"
OFILE="${file%.avi}".mp4
ffmpeg -an -pass 1 -i "$IFILE" -croptop "$CROPT" -cropbottom "$CROPB" -cropleft "$CROPL" -cropright "$CROPR" -s "$VWIDTH"x"$VHIGHT" -aspect "$HASPR":"$VASPR" -vcodec libx264 -flags +loop -cmp +chroma -partitions +parti4x4+partp4x4+partp8x8+partb8x8 -subq 1 -trellis 0 -refs 2 -coder 0 -me_range 24 -g 250 -keyint_min 30 -sc_threshold 40 -i_qfactor 0.71 -flags2 -bpyramid-wpred-mixed_refs-dct8x8+fastpskip -b "$VBITR"k -minrate 75k -maxrate $MAXRATE -bufsize 10M -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.75 -qmin 10 -qmax 51 -qdiff 9 -level 30 "$OFILE" && rm "$OFILE"
ffmpeg -i "$IFILE" -acodec libfaac -ab "$ABITR"k -ar 44100 -pass 2 -deinterlace -croptop "$CROPT" -cropbottom "$CROPB" -cropleft "$CROPL" -cropright "$CROPR" -s "$VWIDTH"x"$VHIGHT" -aspect "$HASPR":"$VASPR" -vcodec libx264 -flags +loop -cmp +chroma -partitions +parti4x4+partp4x4+partp8x8+partb8x8 -subq 1 -trellis 2 -refs 4 -coder 0 -me_range 24 -g 250 -keyint_min 30 -sc_threshold 40 -i_qfactor 0.71 -b "$VBITR"k -minrate 75k -maxrate $MAXRATE -bufsize 10M -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.75 -qmin 10 -qmax 51 -qdiff 9 -level 30 "$OFILE" && mv "$IFILE" /home/oem/e/encoding/encoded/"IFILE" && rm ffmpeg2pass-0.log x264_2pass.log
done
|
Als Ausgabe bekomme ich folgendes:
1
2
3
4
5
6
7
8
9
10
11
12
13 | ffmpeg version 0.8.3-4:0.8.3-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav developers
built on Jun 12 2012 16:37:58 with gcc 4.6.3
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
Input #0, avi, from 'test/Star Trek TOS - S01E00 - Der Käfig.avi':
Metadata:
encoder : Nandub v1.0rc2
Duration: 01:00:55.60, start: 0.000000, bitrate: 1832 kb/s
Stream #0.0: Video: mpeg4 (Advanced Simple Profile), yuv420p, 640x480 [PAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
Stream #0.1: Audio: mp3, 48000 Hz, stereo, s16, 174 kb/s
Stream #0.2: Audio: mp3, 48000 Hz, stereo, s16, 126 kb/s
Option 'croptop' has been removed, use the crop filter instead
Failed to set value '6' for option 'croptop'
|
Es werden alle Dateien gefunden, die ich nicht alle nun aufgelistet habe, da die Fehlermeldung übereinstimmt.
|
|
redknight
Moderator & Supporter
Anmeldungsdatum: Okt. 30, 2008
Beiträge: 16518
Wohnort: Lorchhausen im schönen Rheingau
|

21. August 2012 14:04
OK, wir kommen näher. ANscheinend stimmen deine crop-Optionen nicht mehr. ohne die cropping-Zeile müsste es aber bereits funktionieren. Wie das cropping korrekt geht, kann ich dir ohne meine testkiste von hier aus leider auch nciht sagen.
|
|
Himbrr
(Themenstarter)
Anmeldungsdatum: Feb. 13, 2010
Beiträge: 35
|

21. August 2012 14:07
Wozu wäre die crop-Option denn?
Ich versuch sie mal zu entfernen.
|
|
redknight
Moderator & Supporter
Anmeldungsdatum: Okt. 30, 2008
Beiträge: 16518
Wohnort: Lorchhausen im schönen Rheingau
|

21. August 2012 14:12
Wenn ich mich richtig entsinne, schneidet sie Teile des Bildes aus, zB die schwarzen Streifen, wenn in einem anderen Format aufgenommen wurde als gesendet. Aber wenn du nciht weißt wozu du sie brauchst, lass sie weg.
|
|
Himbrr
(Themenstarter)
Anmeldungsdatum: Feb. 13, 2010
Beiträge: 35
|

21. August 2012 14:33
Habe das Script nun direkt mit einem Tool verbunden, welches zum Konvertieren zu Apfelgeräten konzipiert wurde. Die Optionen sind auch nicht mehr so viele, viel ist voreingestellt.
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 | #!/bin/bash
if [ "$1" = "" ]
then
echo "usage: iPhone-EncDir input_directory"
exit 0
fi
#"iPhone & iPod Touch"; "iPhone4"; "iPad"; "AppleTV"; "AppleTV2"; "Universal"
PRESET="iPhone & iPod Touch"
# MAXRATE="1450k"
# VBITR=512
# ABITR=96
# VWIDTH=480
# HASPR=480
# VASPR=320
# VHIGHT=$(echo "$VWIDTH/$HASPR*$VASPR" | bc)
# CROPT=6
# CROPB=6
# CROPL=8
# CROPR=8
# THREADS=1
# echo video bitrate: $VBITR
# echo audio bitrate: $ABITR
# echo video size: "$VWIDTH"x"$VHIGHT"
# echo aspect ratio: $HASPR:$VASPR
# echo unscaled crop "(top)": $CROPT
# echo unscaled crop "(bottom)": $CROPB
# echo unscaled crop "(left)": $CROPL
# echo unscaled crop "(right)": $CROPR
for file in "$1"/*
do
IFILE="$file"
OFILE="${file%.avi}".mp4
#ffmpeg -an -pass 1 -i "$IFILE" -croptop "$CROPT" -cropbottom "$CROPB" -cropleft "$CROPL" -cropright "$CROPR" -s "$VWIDTH"x"$VHIGHT" -aspect "$HASPR":"$VASPR" -vcodec libx264 -flags +loop -cmp +chroma -partitions +parti4x4+partp4x4+partp8x8+partb8x8 -subq 1 -trellis 0 -refs 2 -coder 0 -me_range 24 -g 250 -keyint_min 30 -sc_threshold 40 -i_qfactor 0.71 -flags2 -bpyramid-wpred-mixed_refs-dct8x8+fastpskip -b "$VBITR"k -minrate 75k -maxrate $MAXRATE -bufsize 10M -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.75 -qmin 10 -qmax 51 -qdiff 9 -level 30 "$OFILE" && rm "$OFILE"
#ffmpeg -i "$IFILE" -acodec libfaac -ab "$ABITR"k -ar 44100 -pass 2 -deinterlace -croptop "$CROPT" -cropbottom "$CROPB" -cropleft "$CROPL" -cropright "$CROPR" -s "$VWIDTH"x"$VHIGHT" -aspect "$HASPR":"$VASPR" -vcodec libx264 -flags +loop -cmp +chroma -partitions +parti4x4+partp4x4+partp8x8+partb8x8 -subq 1 -trellis 2 -refs 4 -coder 0 -me_range 24 -g 250 -keyint_min 30 -sc_threshold 40 -i_qfactor 0.71 -b "$VBITR"k -minrate 75k -maxrate $MAXRATE -bufsize 10M -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.75 -qmin 10 -qmax 51 -qdiff 9 -level 30 "$OFILE" && mv "$IFILE" /home/oem/e/encoding/encoded/"IFILE" && rm ffmpeg2pass-0.log x264_2pass.log
HandBrakeCLI -i "$IFILE" -o "$OFILE".mp4 --preset="$PRESET" -m -x cabac=0:ref=2:me=umh:bframes=0:weightp=0:subme=6:8x8dct=0:trellis=0
done
|
Die Kommentare kann man überlesen.
Wie füge ich noch hinzu, dass zusätzlich ein Unterordner erstellt wird, in dem die fertigen Dateien gespeichert werden?
Geht das?
| mkdir ./converted
#HandBrakeCLI....
mv "$OFILE".mp4 converted/
|
Vielen Dank redknight für die Hilfe!
Sorry für die anfängliche unkonkrete Fragestellung. EDIT: HandBrakeCLI habe ich statt ffmpeg aus dem Grund genutzt, da es sofort funktioniert hat.
Die Dateien werden konvertiert und Fehler werden ebenfalls nicht angezeigt.
|