ssh ([info]ssh3) wrote,
  • Music: Радио Монте-Карло

Реализация поддержки gtkpod устройств iPod 5-го поколения (Video) в Debian / GNU Linux

После месяца использования своего iPod Video решил, что и видео на нем смотреть можно.
И тут началось:
  • Даже под Windows бесплатных средств конвертации чего угодно в приемлимый для iTunes формат не богато, во всяком случае по информации полученной после пары часов терзаний google, а для Linux, за исключением нашей традиционной "для всего пригодной" семейки mplayer/mencoder и ffmpeg других не нашлось вовсе. :(
  • Доступные на момент написания этого текста в unstable Debian /GNU Linux средства для работы с iPod: gtkpod - 0.99.4, libgpod - 0.3.2 не хотели признавать видео файлы в принципе.
  1. О форматах: По информации полученной из надежных источников, демонстрироваться могут только файлы закодированные в следущих форматах:
    H.264
    File formats: .m4v, .mp4, and .mov
    Video: Up to 768 kbits/sec, 320 x 240, 30 frames per second (fps), Baseline Profile up to Level 1.3.
    Audio: AAC-LC up to 160 kbits/sec, 48 Khz, and stereo audio.
    MPEG-4
    File formats: .m4v, .mp4, and .mov
    Video: Up to 2.5 Mbits/sec, 480 x 480, 30 fps, Simple Profile.
    Audio: AAC-LC up to 160 kbits/sec, 48 Khz, stereo audio.
  2. Сборка и установка libgpod, gtkpod Думаю, что данный вопрос особых проблем ни у кого не вызовет. Но порядка ради отмечу пару моментов:
    • собирать следует cvs-версии libgpod и gtkpod, так как они уже содержат изменения касающиеся поддержки устройств 5-го покоеления.
    • на исходный код gtkpod необходимо наложить небольшой патч, для поддержки формата h.264
      --- src/mp4file-orig.c 2006-04-16 18:22:11.000000000 +1000
      +++ src/mp4file.c 2006-04-16 18:21:31.000000000 +1000
      @@ -159,7 +159,7 @@

      trackId = MP4FindTrackId(mp4File, 0, NULL, 0);
      trackType = MP4GetTrackType(mp4File, trackId);
      - if (trackType && ((strcmp(trackType, MP4_AUDIO_TRACK_TYPE) == 0)||(strcmp(trackType, MP4_VIDEO_TRACK_TYPE) == 0)))
      + if (trackType && ((strcmp(trackType, MP4_AUDIO_TRACK_TYPE) == 0)||(strcmp(trackType, MP4_VIDEO_TRACK_TYPE) == 0) || (strcmp(trackType, MP4_OD_TRACK_TYPE) == 0)))
      {
      gchar *value;

    Следует отметить, что я как закоренелый пользователь Debian, инсталлировал утилиты в систему, только после того как собрал пакет, хотя в этом случае много труда не потребовалось, так как я просто обновил исходный код пакетов сопровождаемых официальными разработчиками, как это описано в разделе 6.4 Обновление пакета в Руководстве начинающего разработчика Debian.

  3. Конвертация файлов
    • Соотношение 4:3
      #!/bin/bash
      #Description: video2ipod converts video to iPod format
      #Usage: video2ipod origin.avi output (it will add .mp4 by itself) (The origin can be avi, mpg, mov...)
      ffmpeg -i "$1" -f mp4 -vcodec mpeg4 -maxrate 1000 -b 700 -qmin 3 -qmax 5 -bufsize 4096 -g 300 -acodec aac -ar 44100 -ab 192 -s 320x240 -aspect 4:3 `basename $1 .avi`.mp4

    • Соотношение 16:9
      #!/bin/bash
      #Description: video2ipod converts video to iPod format
      #Usage: video2ipod origin.avi output (it will add .mp4 by itself) (The origin can be avi, mpg, mov...)
      ffmpeg -i "$1" -f mp4 -vcodec mpeg4 -maxrate 1000 -b 700 -qmin 3 -qmax 5 -bufsize 4096 -g 300 -acodec aac -ar 44100 -ab 192 -s 320x180 -aspect 16:9 `basename $1 .avi`.mp4

  4. Подключение iPod к системе В моем случае подключение устройства выглядело примерно так:
    • Написание udev правила /etc/udev/local.rules
      # my Apple iPod
      SUBSYSTEMS=="scsi", KERNEL=="sd*", \
      ATTRS{model}=="iPod", \
      SYMLINK+="ipod%n", OPTIONS+="all_partitions"

    • Добавление в /etc/fstab строки
      /dev/ipod2 /mnt/ipod vfat codepage=866,iocharset=koi8-r,noauto,user,umask=002,showexec,quiet 0 0
      На вопрос почему я не стал использовать usbmount могу только ответить, что эта утилита вовсе меня не впячетлила.

  5. Копирование файлов в устройство
    Процесс простой и интуитивно понятный.
    • подключаем iPod, монтируем его файловую систему к корневой;
    • запускаем gtkpod;
    • создаем новый playlist в который добавляем видео файлы;
    • синхронизируем устройство;
    • приступаем к просмотру ;).

По мотивам:
Uwe Hermann's blog
Carsten Otto - Video iPod and Linux
Converting videos to iPod using GNU/Linux
Tags: ipod video linux gtkpod

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

  • 1 comments

[info]durov_pavlig

July 2 2008, 05:40:35 UTC 3 years ago

ммм
Create an Account
Forgot your login or password?
Facebook Twitter More login options
English • Español • Deutsch • Русский…