MRW

Video für iAudio X5 kodieren

Der iAudio X5 ist sehr empfindlich, was das Format der Videodateien betrifft, die er abspielen kann. Er versteht nur MPEG4/MP3 (respektive DIVX oder XVID), offenbar nur in bestimmten Auflösungen (160x128 und 106x108) und mit ganz bestimmten Parametern, was Audio-Samplingrate, Bitrate etc. betrifft. Die folgenden Parameter habe ich auf der Homepage http://amish-geeks.de/blog/cowon-iaudio-x5-und-videos-konvertieren/1) gefunden.

Einzelnen Film umkodieren

Einzelne Datei umkodieren:

mencoder originaldatei.endung -o ausgabe.avi \
  -oac mp3lame -srate 44100 -lameopts mode=2:cbr:br=96:vol=0 \
  -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=100:vhq:vpass=1 \
  -ffourcc XVID -vf scale=160:128 -ofps 14.985

Und wenn man bessere Qualität will, startet man einen zweiten Durchlauf mit vpass=2, in dem die eben erzeugte Datei divx2pass.log verwendet wird, um die Qualität zu steigern. Für mehr als zwei Durchgänge gäbe es noch die Option vpass=3. Hierzu verweise ich aber auf die man-Seite von mencoder.

mencoder originaldatei.endung -o ausgabe.avi \
  -oac mp3lame -srate 44100 -lameopts mode=2:cbr:br=96:vol=0 \
  -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=100:vhq:vpass=2 \
  -ffourcc XVID -vf scale=160:128 -ofps 14.985

Ganzes Verzeichnis rekursiv konvertieren

Ganzes Verzeichnis (das nur Videodateien mit unbekannter Endung enthält) umkodieren:

for file in $(find -type f); do
  rm divx2pass.log
  for pass in 1 2; do
    mencoder "$file" -o "$file.avi" \
      -oac mp3lame -srate 44100 -lameopts mode=2:cbr:br=96:vol=0 \
      -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=100:vhq:vpass=$pass \
      -ffourcc XVID -vf scale=160:128 -ofps 14.985
  done
done

Kodieren und Originaldateien löschen

Will man die Originaldateien bei Erfolg löschen, geht es z.B. so:

for file in $(find -type f); do
  rm divx2pass.log
  mv "$file" "$(dirname $file)/input-$(basename $file)"
  for pass in 1 2; do
    mencoder "$(dirname $file)/input-$(basename $file)" -o "$file.avi" \
      -oac mp3lame -srate 44100 -lameopts mode=2:cbr:br=96:vol=0 \
      -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=100:vhq:vpass=$pass \
      -ffourcc XVID -vf scale=160:128 -ofps 14.985
  done
done

Alle Originaldateinamen beginnen nun input- und können bei Bedarf gelöscht werden (Achtung: Eigene Verantwortung, die Dateien sind danach weg!) mit dem Befehl:

find -name 'input-*' -exec rm {} ';'

Ganze Musik-DVDs umkodieren

Iron Maiden

DVD1

In der Schlaufe ''for pass in 1 2; do'' kann man je nach Qualitätswünschen auch den zweiten Durchgang weglassen, oder beliebig viele Durchgänge laufen lassen:
* Nur ein Durchgang: ''for pass in 1; do''
* Vier Durchgänge: ''for pass in 1 3 3 3; do''

Meine Erfahrung: Mit nur einem Durchgang gibt es viele Klötzchen. Mit mehr muss ich noch testen. Allerdings stelle ich auch bei vier Durchgängen keine sichtbare Qualitätssteigerung fest.

i=1
for name in 01_woman_in_uniform \
            02_wrathchild_-_live_at_the_rainbow \
            03_run_to_the_hills \
            04_the_number_of_the_beast \
            05_flight_of_icarus \
            06_the_trooper \
            07_2_minutes_to_midnight \
            08_aces_high \
            09_wasted_years \
            10_stranger_in_a_strange_world \
            11_can_i_play_with_madness \
            12_the_evil_that_men_do \
            13_the_clairvoyant_-_donington_88 \
            14_infinite_dreams_-_live \
            15_holy_smoke \
            16_tailgunner; do
  rm divx2pass.log
  for pass in 1 2; do
    mencoder dvd://1 -chapter $i-$i -o $name.avi \
      -oac mp3lame -srate 44100 -lameopts mode=2:cbr:br=96:vol=0 \
      -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=100:vhq:vpass=$pass \
      -ffourcc XVID -vf scale=160:128 -ofps 14.985
  done
  let $((++i))
done

DVD2

i=1
for name in 17_bring_your_daughter_to_the_slaughter \
            18_be_quick_or_be_dead \
            19_from_here_to_eternity \
            20_wasting_love \
            21_fear_of_the_dark_-_live \
            22_hallowed_by_thy_name_-_live \
            23_man_on_the_edge \
            24_afraid_to_shoot_strangers \
            25_lord_of_the_flies \
            26_virus \
            27_the_angel_and_the_gambler \
            28_futureal \
            29_the_wicker_man \
            30_out_of_the_silent_planet \
            31_brave_new_world_-_rock_in_rio; do
  rm divx2pass.log
  for pass in 1 2; do
    mencoder dvd://2 -chapter $i-$i -o $name.avi \
      -oac mp3lame -srate 44100 -lameopts mode=2:cbr:br=96:vol=0 \
      -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=100:vhq:vpass=$pass \
      -ffourcc XVID -vf scale=160:128 -ofps 14.985
  done
  let $((++i))
done

AC/DC Stiff Upper Lip

Man kann es auch ein klein wenig flexibilisieren: Erst definiert man die Spur (man findet die richtige mit lsdvd) und die Liedtitel:

track=2
passes="1 3 3 3"
files="01_newsflash 02_stiff_upper_lip
       03_you_shook_me_all_night_long
       04_problem_child 05_thunderstruck
       06_hell_aint_a_bad_place_to_be
       07_hard_as_a_rock 08_shoot_to_thrill 
       09_rock_and_roll_aint_noise_pollution 
       10_what_do_you_do_for_money_honey 
       11_bad_boy_boggie 12_hells_bells
       13_up_to_my_neck_in_you 14_the_jack
       15_back_in_black
       16_dirty_deeds_done_dirt_cheap
       17_highway_to_hell 18_whole_lotta_rosie
       19_let_there_be_rock 20_tnt
       21_for_those_about_to_rock_we_salute_you
       22_shot_down_in_flames"

Danach geht es immer gleich weiter:

i=1
for name in $files; do
  rm divx2pass.log
  for pass in $passes; do
    mencoder dvd://$track -chapter $i-$i -o $name.avi \
      -oac mp3lame -srate 44100 -lameopts mode=2:cbr:br=96:vol=0 \
      -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=100:vhq:vpass=$pass \
      -ffourcc XVID -vf scale=160:128 -ofps 14.985
  done
  let $((++i))
done

Shakira Laundry Service Limited Edition

Hier sind die Titel auf den verschiedenen Spuren, nicht in den Kapiteln:

track=1
files="01_Objection_Tango_Live
       02_Making_Of_Objection_Tango
       03_Objection_Tango_Video"
passes="1 3 3 3 3 3"
for name in $files; do
  rm divx2pass.log
  for pass in $passes; do
    mencoder dvd://$track -o $name.avi \
      -oac mp3lame -srate 44100 -lameopts mode=2:cbr:br=96:vol=0 \
      -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=100:vhq:vpass=$pass  \
      -ffourcc XVID -vf scale=160:128 -ofps 14.985
  done
  let $((++track))
done

Apocalyptica Reflections Revised

Hier sind die Titel auf den verschiedenen Spuren, nicht in den Kapiteln:

files="01_Faraway 02_Enter_Sandman
       03_Inquisition_Symfony
       04_Nothing_Else_Matters
       05_Somewhere_Around_Nothing
       06_Somewhere_Around_Nothing
       07_Faraway_With_Linda
       08_Faraway_With_Nina_Hagen"
track=3
passes="1 2"
for name in $files; do
  rm divx2pass.log
  for pass in $passes; do
    mencoder dvd://$track -o $name.avi \
      -oac mp3lame -srate 44100 -lameopts mode=2:cbr:br=96:vol=0 \
      -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=100:vhq:vpass=$pass \
      -ffourcc XVID -vf scale=160:128 -ofps 14.985
  done
  let $((++track))
done
1) Die Information zu vpass ist auf der Seite http://amish-geeks.de/blog/cowon-iaudio-x5-und-videos-konvertieren/ falsch. Entweder man verwendet nur vpass=1, oder aber zuerst vpass=1 und erst im zweiten Durchlauf vpass=2. Nur mit vpass=2 wie dort beschrieben funktioniert es nicht richtig.