Anzeige:
Ergebnis 1 bis 9 von 9

Thema: for-Schleife mit avconv

  1. #1
    Registrierter Benutzer
    Registriert seit
    Oct 2014
    Beiträge
    54

    for-Schleife mit avconv

    Hallo Forumnutzer,


    es geht um folgenden Befehl:
    Code:
    for file in "*.mp4" ; do avconv -i "$file" -qscale 1 "${file%.mp4}".mkv ; done
    Bestätige ich das im Terminal, das im entsprechendem Verzeichnis geöffnet/aktiv ist, so erhalte ich folgende Fehlermeldung:
    Code:
    *.mp4: No such file or directory
    Eigentlich sollte diese Befehlszeile alle .mp4-Dateien im aktuellen Verzeichnis in .mkv-Dateien per avconv umwandeln (z.B. Test.mp4 => Test.mkv).
    Wahrscheinlich ist es ein sehr einfacher Fehler...

    Noch etwas: Ist es auch möglich etwas mit dem find-Befehl anzufangen? Oder kann der for-Befehl auch in Unterverzeichnisse suchen? Wenn man also Videodateien z.B. auch in Unterverzeichnisse konvertieren möchte.

    Freue mich über jede Hilfe!


    Mit freundlichen Grüßen
    PHBU
    Geändert von PHBU (03.03.16 um 17:15 Uhr) Grund: Rechtschreibfehler

  2. #2
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.061
    Code:
    [marc@radagast tmp]$ for i in *.txt ; do  echo $i; done
    a.txt
    b.txt
    c.txt
    [marc@radagast tmp]$ for i in "*.txt" ; do  echo $i; done
    a.txt b.txt c.txt
    und mit find ginge das auch, auch rekursiv - schon mal die man-page von find gelesen?
    Ich bin root - ich darf das.

  3. #3
    Registrierter Benutzer
    Registriert seit
    Oct 2014
    Beiträge
    54
    Okay, das war einfach. Danke Dir!

    Bei find weiß ich nicht, wie ich die Dateiendung (.mp4) wegbekomme und durch .mkv ersetze.

  4. #4
    Banned
    Registriert seit
    Feb 2005
    Beiträge
    1.151
    man basename

    echo $(basename $file ".mp4").mkv

  5. #5
    Universaldilletant Avatar von fork
    Registriert seit
    Dec 2001
    Ort
    Frankfurt/Main
    Beiträge
    1.175
    Hey BW! Von Dir kann man echt noch was lernen. Den Einsatz von basename kannte ich so noch nicht.

  6. #6
    Banned
    Registriert seit
    Feb 2005
    Beiträge
    1.151
    Zitat Zitat von fork Beitrag anzeigen
    Hey BW! Von Dir kann man echt noch was lernen.
    Solange, bis du meine Scripte liest.

  7. #7
    Registrierter Benutzer
    Registriert seit
    Oct 2014
    Beiträge
    54
    Super!

    Oder kombiniert:
    Code:
    for file in ${find . -iname '*.mp4'} ; do avconv -i "$file" -qscale 1 "${file%.*}".mkv ; done

  8. #8
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.061
    ... und jetzt lesen wir die man-page von find nochmals genau und kommen dann auch ohne die for-Schleife drumherum aus.

    ... wenn man will :-)
    Ich bin root - ich darf das.

  9. #9
    Banned
    Registriert seit
    Feb 2005
    Beiträge
    1.151
    Code:
    find . -iname '*.mp4' | while read filename;  do avconv -i "$file" -qscale 1 "${file%.*}".mkv ; done
    Das for file in ${find . -iname '*.mp4'} ; müsste for file in $(find . -iname '*.mp4') ; heissen, wobei man sich dann um IFS noch kümmern sollte...

Ähnliche Themen

  1. avconv m3u8 -> warten bis Stream wieder verfügbar
    Von PHBU im Forum Anbindung an die Aussenwelt
    Antworten: 0
    Letzter Beitrag: 03.01.16, 20:06
  2. avconv: Bildsequenz zu Video?
    Von klofisch im Forum Anwendungen Allgemein, Software
    Antworten: 5
    Letzter Beitrag: 31.03.15, 15:45
  3. youtube-dl avconv kann .mp4 und .m4a nicht kombinieren
    Von Lux49 im Forum Linux Allgemein
    Antworten: 2
    Letzter Beitrag: 03.01.15, 22:11
  4. Antworten: 0
    Letzter Beitrag: 20.12.13, 19:59
  5. Antworten: 0
    Letzter Beitrag: 11.12.13, 11:13

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •