Was muss ich ändern, um zum Beispiel alle Videos eines Verzechnis auf einem Rutsch neuzukodieren?
Ich bin in Sachen Scripting auch eher einer, der so lange probiert, bis es klappt. Mir fehlt da methodisches Wissen. Es sieht so aus, als könne man in die .bashrc nicht eins zu eins Befehlszeilen übernehmen, die via Direktaufruf in der Bash noch funktionieren. Letzteres würde für deine Bedürfnisse wie folgt lauten (Direktaufruf):
for i in *.{avi,flv};do avconv -i "$i" -vf scale=640:-1 -pass 1 -threads auto -c:v libx264 -b:v 800k -r 29.970 -fastfirstpass 1 -preset veryfast -vprofile main -tune fastdecode -level 30 -f mp4 -an /dev/null -y && avconv -y -i "$i" -vf scale=640:-1 -pass 2 -threads auto -c:v libx264 -b:v 800k -r 29.970 -preset veryfast -vprofile main -tune fastdecode -level 30 -c:a aac -strict experimental -ac 1 -b:a 96k "${i%%.*}"-blog.mp4;done
Ob du ein Suffix wie in meinem Beispiel "-blog" in den Zieldateien brauchst, musst du selbst entscheiden. Ich konvertiere mitunter auch mp4-Originale und stelle so sicher, dass Originale nicht überschrieben werden (es würde allerdings eine Abfrage kommen) und eine klare Unterscheidbarkeit gegeben ist. Eleganter wäre es vermutlich, gleich in ein neues Zielverzeichnis konvertieren zu lassen.
Die Liste der Dateierweiterungen in den geschweiften Klammern (in meinem Beispiel avi + flv) lässt sich natürlich beliebig erweitern. Der Aufruf berücksichtigt alle entsprechenden Dateien im *aktuellen* Verzeichnis.
@alle: Wie schreibt man so etwas (Schleife) in die .bashrc oder in ein Script?