2012/10/14

Ubuntu  動画ファイルの形式変換

YouTubeなどからファイル(動画)をダウンロードしてくると,多くの場合そのファイルはflv形式であるようです。このファイルを Ubuntu で様々なファイル形式に変換するにはいくつかの方法があります。

1. ffmpeg を使って変換する。


ffmpeg はLinux系で動画を変換するソフトウェアの一つで,コマンドラインから入力します。
なれるにはある程度時間はかかりますが,かなりのことが出来ます。

インストール 

 Ubuntu  ffmpeg のインストール方法
にまとめておきました。

使い方

 サンプルを参考に練習するには
 が参考になるでしょう。
 
使い方を知るには
  ffmpeg 使い方

 が程よくまとまっていて参考になります。

 詳しい使い方については
  http://fixedpoint.jp/ffmpeg/ffmpeg-doc.html
 が参考になります。


2. FirefoxのDownloadHelperを使って変換する。


flv形式のファイルをmp4形式、avi形式及び、mov形式変換するのであればFirefoxのDownloadHelperで変換することができます。

準備

 1. ffmpeg をインストール
   参考:Ubuntu  ffmpeg のインストール方法

 2. コンバーターに ffmpeg を指定
  - FireFox のツール → アドオン から DownloadHelperの設定 を選んで 設定 をクリック。
  - 自動変換 のタブを 選択し、自動変換の有効化にチェックを入れる。
  - コンバータに FFMpeg を選択し、その右横の空欄に/usr/local/bin/ffmpeg と、書き込む。

使い方

 1. メニューバーにあるDownloadHelperを右クリックする。
 2. 出てきたメニューから動画を変換を選択する。("変換されるファイル"というウィンドウが出る。)
 3. 出てきたウィンドウから,変換したいflv形式のファイルを選択し、開くをクリックする。
 4.  すると、”converterオプション”というウィンドウが出てくるので,変換したいファイル形式を選んでOKをクリックする。

参考 FirefoxのDownloadHelperでYoutubeの動画をmp4でダウンロードする。



3. VLCメディアプレーヤーを使って変換する。


flv形式のファイルをwmv形式に変換するのに使用しましたが,入力出力共にかなりの形式に対応しているようです。

 インストール

 UbuntuソフトウェアセンターからVLCで検索し、VLCメディアプレーヤーを選んでインストールをクリックする。

使い方

VLC Media Player に詳しく出ています。


4. Avidemuxを使って変換をする。


2012/10/12

ubuntu その13  ubuntu 10.10 にアップグレードしたらテキストモードになってしまった

Ubuntu9.04 に LXDE を導入後、電源を交換してCPUを500MHzから1GHzに取り替えた
これで推奨最小システム要件を満たすようになったので,また Gnome, つまり Ubuntu を使うようになった。その後は 9.04 → 9.10 → 10.04 と順調にグレードアップして使っていた。

ところが、10.04 から 10.10 にグレードアップしたら、デスクトップが立ち上がらずにテキストモードの入力画面になってしまった。ネットで最新のカーネルをインストールする解決策を見つけたが,グラフィックが異なる。そこで、Ubuntuの日本語フォーラムに投稿した。

今回はそのフォーラムで教えていただきながら解決していった内容を整理しておきたいと思う。

症状

Ubuntu10.04 を 10.10 にアップグレードしたら入力画面がテキストモードになってしまった。
ctrl + alt + F7でも
*Checking battery state...
でカーソルが画面の右端で点滅してGnomeには戻らない。

システム要件

    CPU  1GHz
    memory 512MB
    HDD     40GB
    Motherboard   K7S5A
    Graphic Board   nVidia Corporation NV11DDR [GeForce2 MX200]
    モニタ Benq FP91G+


解決までの詳細

以下のコマンドを実行(Gnome を一度停止してから再度スタート)

$ sudo gdm stop
$ sudo gdm start

結果は

**(gmd-binary:1383):WARNING**:Failed to quire org.gnome.DisplayManager
**(gmd-binary:1383):WARNING**:Could not acuire name;builing out

次に以下のコマンドを実行(画面表示に関してのエラーをリストアップ)

$  grep '(EE)' /var/log/Xorg.0.log

結果は

     (WW) warning, (EE) error, (NI) not implemented, (??) unknown
[   20.393] (EE) NV: Kernel modesetting driver in uese, refusing to load
[   20.393] (EE) No devices deteched.

Gnome は動いているようだが,グラフィックドライバに問題がありそうだ。

ここで再起動と同時にEscキーを連打してgrubの起動メニューを表示させる。eを押して grubの編集画面に入り、linux行の最後の方にある

quiet splash

という部分に、nomodesetを追記して、

quiet splash nomodeset

とする。 これで再起動したが,入力画面はテキストモードのままだった。

もう一度再起動し, 同時にEscキーを連打してgrubの起動メニューを表示させる。 ここで古いカーネル(Kernel-2.6.31-21-generic)を選択してみると Gnome が正常に動き出した。しかし、これより新しいカーネルではやはり動かない。

再び再起動し、古いカーネルを選択する。端末から
gksudo gedit /etc/X11/xorg.conf
を実行して xorg.conf ファイルを以下のように編集する。
Section "Device"
        Identifier      "Configured Video Device"
        Driver          "nv"
EndSection

Section "Monitor"
        Identifier      "Configured Monitor"
EndSection

Section "Screen"
        Identifier      "Default Screen"
        Monitor         "Configured Monitor"
        Device          "Configured Video Device"
EndSection
しかし、状況に大きな変化なし。次にもう一度端末から
gksudo gedit /etc/X11/xorg.conf
を実行して xorg.conf ファイルを以下のように編集する。
Section "Device"
        Identifier      "Configured Video Device"
        Driver          "vesa"
EndSection

Section "Monitor"
        Identifier      "Configured Monitor"
EndSection

Section "Screen"
        Identifier      "Default Screen"
        Monitor         "Configured Monitor"
        Device          "Configured Video Device"
EndSection
それでも、状況に大きな変化なし。
正解は Driver を"nouveau"もしくは"fbdev"に指定する事だった。
つまり、端末から

gksudo gedit /etc/X11/xorg.conf

を実行して xorg.conf ファイルを以下のように編集する。

Section "Device"
        Identifier      "Configured Video Device"
        Driver          "nouveau"
EndSection

Section "Monitor"
        Identifier      "Configured Monitor"
EndSection

Section "Screen"
        Identifier      "Default Screen"
        Monitor         "Configured Monitor"
        Device          "Configured Video Device"
EndSection
または、
Section "Device"
        Identifier      "Configured Video Device"
        Driver          "fbdev"
EndSection

Section "Monitor"
        Identifier      "Configured Monitor"
EndSection

Section "Screen"
        Identifier      "Default Screen"
        Monitor         "Configured Monitor"
        Device          "Configured Video Device"
EndSection
これで Gnome が立ち上がって、GUI が使えるようになった。
 

原因

Ubuntu10.10 にグレードアップしたら Gnome が立ち上がらなくなったのには(テキストモードになってしまったのには)、Xorg と KMS が関係していた。

XorgX Window System)とはほとんどのLinux系のOS上で入出力を制御しているプログラムだ。Ubuntu系で使われているデスクトップ環境すなわち Gnome, Xfce, KDE のしたではこの Xorg が動いている。(参考:1)

KMSKernel mode-setting)とはカーネルがモニターの解像度、周波数と色深度を設定したり,変更したりする役割を担うという事を意味している。(参考:2)

KMS は Linux の機能として Kernel-2.6.29 から導入された。(参考:3)これは Ubuntu9.04 がリリースされたときのカーネルのバージョンは 2.6.28 で(参照:4)、Ubuntu9.10 がリリースされたときのカーネルのバージョンが 2.6.31 だから(参照:5)、Ubuntu では 9.10 で始めてKMSが導入されたことになる。しかし,この時はまだオプションとしての機能であり(参照:6),標準機能になったのは 10.04 からだ(参照:7)

Ubuntu10.04 ではKMSが標準で有効になっている。KMS が有効だと,それ以前のビデオドライバーの多くが作動しない。nVidia製のビデオカードに対応するドライバーでは、navidia(nVidia社純正), navidiafb, rivafb がこれにあたる。(参照:8)また、vesa, nv も動作しない。(参照:9)

Ubuntu10.04 ではKMSをサポートする nouveau が、nVidiaハードウェア向けの標準ビデオドライバととして採用された。同時に Xorg の方で nVidia純正のドライバーのうち、nvidia-current (190.53)、nvidia-173nvidia-96 の3つもサポートするようになった。(参照:10)

XorgがサポートするようになったnVidia純正のドライバー nvidia-96 があれば使用しているグラフィックボード GeForce2 MX200 を利用できる。(参照:11)この事から、 GeForce2 MX200 は nvidia-96 を使っては正常に機能していたようだ。

しかし、Ubuntu10.10 では採用している Xorg のバージョンが上がり,nvidia-173,nvidia-96とは互換性がなくなった。(参照:12)

そこでnVidia製のビデオカードを利用するには上記のように xorg.conf で、nVidiaハードウェア向けの標準ビデオドライバーである nouveau を指定する必要があったということだった。
  

参考

1. X Window System

 2. Kernel mode-setting
 
 3. http://wiki.debian.org/KernelModesetting

 4. https://wiki.ubuntulinux.jp/Develop/Jaunty/TechnicalOverview

 5. https://wiki.ubuntulinux.jp/Develop/Karmic/TechnicalOverview 

 6. https://wiki.ubuntu.com/KarmicKoala/ReleaseNotes/ja 

 7. https://wiki.ubuntu.com/LucidLynx/ReleaseNotes/ja

 8. http://nouveau.freedesktop.org/wiki/KernelModeSetting

 9. http://wiki.debian.org/KernelModesetting#nVidia_GfxCards

 10. https://wiki.ubuntulinux.jp/Develop/Lucid/TechnicalOverview  

 11. http://www.nvidia.com/object/IO_32667.html 

 12. https://wiki.ubuntu.com/MaverickMeerkat/ReleaseNotes/ja/

2012/10/11

Ubuntu その12 SIS630 comp. bus not detected, module not inserted

あれは確か1号機にインストールしてある Lubuntu 11.04 を11.10 にアップグレートした後あたりからだったと思う。電源を投入後で Lubuntu11.10 が立ち上がる前のまだ黒い画面のところで

[6桁の数字] SIS630 comp. bus not detected, module not inserted.

というメッセージが出るようになった。しかし、そのPCを使っていて特に不都合がなかったのでそのままにしておいた。

ところが、 Lubuntu11.10から 12.04 にアップグレードした後もこのメッセージが出続けるので,何とかすることにした。

1号機のシステム要件

    CPU  1GHz
    memory 512MB
    HDD     40GB
    Motherboard   K7S5A
    Graphic Board   nVidia Corporation NV11DDR [GeForce2 MX200]


インストールしてあるOS

Lubuntu12.04

症状

電源を投入後で Lubuntu11.10 が立ち上がる前のまだ黒い画面のところで

 [6桁の数字] SIS630 comp. bus not detected, module not inserted.

というメッセージが出る。

解決策

/etc/modprobe.d/blacklist.conf の末尾に blacklist i2c_sis630を書き加える。

手順は
  1. アプリケーションメニュー → アクセサリ と進み,ターミナルエミュレータを起動
  2. cd /etc/modprobe.d/
  3. sudo leafpad blacklist.conf
  4. 末尾に 
     # K7S5A   
     blacklist i2c_sis630
    の2行を追加する。
  5. 保存して blacklist.conf を閉じる。
  6. 再起動
その後メッセージは出なくなりました。


Ubuntu  ffmpeg のインストール方法

Ubuntu 11.10 に Synapticパッケージマネージャーから ffmpeg をインストールしたが、しばらく使わなかった。そしてしばらくぶりに端末から
ffmpeg -version
としたら,エラーが出た。内容は書き取っていなかったので正確には覚えていないが,バージョンが古くて依存関係を満たしていないというようなことだったと記憶している。

そこでこれを以下のようにアンインストールして、最新版を再インストールした。(参考:1)


ffmpeg のインストール

ffmpegは頻繁に更新が行なわれています。Synapticパッケージマネージャーやソフトウェアセンターからインストール出来ますが,常に最新の状態である訳ではありません。ここでは
  端末からコマンドを使って
  Ubuntu 10.10, 11.04, 11.10 または 12.04 に
  最新のffmpegをインストールする

方法を紹介します。
コマンドとは命令という意味で、マウスでクリックする替りにキーボートから端末に入力します。端末を起動する(開く)には
 Dashホーム→それ以外のソフト→結果の絞り込み→アクセサリー
 と進み、”インストール済み”から選択します。

0. インストール手順

  1. 古いffmpeg のアンインストール
  2. ffmpeg に必要なライブラリをインストール
  3. ffmpeg の最新版をインストール

1. 古いffmpeg のアンインストール

端末を開いて以下のコマンドで ffmpeg と関連のパッケージをアンインストールする。

sudo apt-get remove ffmpeg x264 libav-tools libvpx-dev libx264-dev

(家の Ubuntu では ”パッケージ’libav-tools’は見つかりません。”と、エラーが出たので、それを除いた以下のコマンド
sudo apt-get remove ffmpeg x264 libvpx-dev libx264-dev
を実行した。)

2. ffmpeg に必要なライブラリをインストール


ffmpeg に必要なエンコード,デコードライブラリをインストールします。ここでインストールするライブラリは下記の通りです。なお、ライブラリのインストールは任意ですから必要に応じて省略出来ます。

 libfaac (AAC encoder)
 libmp3lame (MP3 encoder)
 libopencore-amr (AMR encoder/decoder)
 librtmp (for additional RTMP protocols)
 libtheora (Theora encoder)
 libvorbis (Vorbis encoder)
 fdk-aac (AAC encoder)
 libvpx (VP8 encoder/decoder)
 libx264 (H.264 encoder)

まず、端末から以下のコマンドでアップデートと、 上記のライブラリのうち、

 libfaac (AAC encoder)
 libmp3lame (MP3 encoder)
 libopencore-amr (AMR encoder/decoder)
 librtmp (for additional RTMP protocols)
 libtheora (Theora encoder)
 libvorbis (Vorbis encoder)

をインストールします。

sudo apt-get update
sudo apt-get -y install autoconf build-essential checkinstall git libfaac-dev libgpac-dev \
  libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev \
  librtmp-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev \
  libx11-dev libxext-dev libxfixes-dev pkg-config texi2html yasm zlib1g-dev

もし,libfaac-dev に関係するエラーが出たら,

https://launchpad.net/ubuntu/+archive/primary/+files/faac_1.28.orig.tar.gz

からlibfaacパッケージをダウンロードして、以下のコマンドでインストールします。

tar -xzvf faac_1.28.orig.tar.gz
cd faac-1.28
./configure
make && make install

残りの3つのライブラリ

 fdk-aac (AAC encoder)
 libvpx (VP8 encoder/decoder)
 libx264 (H.264 encoder)

は次の3章でソースコードからインストールします。
 

3. ffmpeg の最新版をインストール


Ubuntuでは端末からファイルをダウンロードしたり、インストールするには通常 apt-get コマンドを使います。しかし、参考にしたサイトでは git コマンドを使ってソースコードをダウンロードしているので、ここでもそのまま git コマンドを使った方法を紹介します。

3-0. ここで使うコマンドについて


apt-get も git もソフトウェアを管理するプログラムを使うためのコマンド(命令)です。apt-get ではAPTというシステムを使い,git ではGitというシステムを利用しています。もう少し詳しく書くと,
Git とはバージョンやソースコードを管理するシステムで、動作速度に重点がおかれています。(参照:5)Git を利用するには端末からコマンドとして git と入力します。  

APT は Debian/GNU系Linux でのパッケージ管理システムで、ソフトウェアのインストールやバージョン管理をしやすくするために作られました。(参照:6)APT を利用するには端末からコマンドとして apt-get と入力します。
バージョンやソースコード、 パッケージ、Debian/GNU系Linuxについては別の機会で説明します。

ソースコードをダウンロードしてきた場合にはそのままではプログラムとして使えないので、使えるようにする必要があります。これをコンパイルと言います。 コンパイルするには端末からつのコマンド

./configure
make
sudo make install

を入力します。なお、ここでは make install の替りにcheckinstall を使い,

./configure
make
sudo checkinstall

と入力しています。 install を checkinstall とすると、インストールに加えてOSに合ったパッケージまで作成してくれて,インストール後の後処理もしてくれます。また、アンインストールもパッケージマネージャーから簡単に出来ます。(参照:2)

3-1. x264 をインストール


端末から以下のコマンドで x264(H.264 ビデオエンコーダ)をダウンロードしてインストールします。

cd
git clone --depth 1 git://git.videolan.org/x264
cd x264
./configure --enable-static
make
sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | \
  awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes \
  --fstrans=no --default


3-2. fdk-aac をインストール


端末から以下のコマンドで fdk-aac (AAC オーディオエンコーダ)をダウンロードしてインストールします。

cd
git clone --depth 1 git://github.com/mstorsjo/fdk-aac.git
cd fdk-aac
autoreconf -fiv
./configure --disable-shared
make
sudo checkinstall --pkgname=fdk-aac --pkgversion="$(date +%Y%m%d%H%M)-git" --backup=no \
  --deldoc=yes --fstrans=no --default

3-3. libvpx をインストール


端末から以下のコマンドで libvpx (VP8 ビデオエンコーダ&デコーダ)をダウンロードしてインストールします。

cd
git clone --depth 1 http://git.chromium.org/webm/libvpx.git
cd libvpx
./configure
make
sudo checkinstall --pkgname=libvpx --pkgversion="1:$(date +%Y%m%d%H%M)-git" --backup=no \
  --deldoc=yes --fstrans=no --default

3-4. ffmpeg をインストール


端末から以下のコマンドで ffmpeg をダウンロードしてインストールします。

cd
git clone --depth 1 git://source.ffmpeg.org/ffmpeg
cd ffmpeg
./configure --enable-gpl --enable-libfaac --enable-libfdk-aac --enable-libmp3lame \
  --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libtheora \
  --enable-libvorbis --enable-libvpx --enable-x11grab --enable-libx264 --enable-nonfree \
  --enable-version3
make
sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(date +%Y%m%d%H%M)-git" --backup=no \
  --deldoc=yes --fstrans=no --default
hash x264 ffmpeg ffplay ffprobe 

インストールはこれで終了です。

4.ffmpeg, libvpx, fdk-aac, x264 のアップデート

 ここでは ffmpeg, libvpx, fdk-aac, x264をパッケージマネージャーからパッケージとしてインストールしなかったので,アップデートは下記の順に端末からコマンドを打って行います。

3で作成したパッケージの削除(これで3で作成したパッケージは全て削除されます。)
 
sudo apt-get -y remove ffmpeg x264 libx264-dev libvpx-dev 


2でインストールしたライブラリの再インストール

sudo apt-get update
sudo apt-get -y install build-essential checkinstall git libfaac-dev libgpac-dev \
  libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev \
  librtmp-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev libvorbis-dev \
  libx11-dev libxext-dev libxfixes-dev texi2html yasm zlib1g-dev

x264をアップデート(./configure, make, sudo checkinstall は3-1と同様)

cd ~/x264
make distclean
git pull
./configure --enable-static
make
sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | \
  awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes \
  --fstrans=no --default

fdk-aacをアップデート(./configure, make, sudo checkinstall は3-2と同様)

cd ~/fdk-aac
make distclean
git pull
./configure --disable-shared
make
sudo checkinstall --pkgname=fdk-aac --pkgversion="$(date +%Y%m%d%H%M)-git" --backup=no \
  --deldoc=yes --fstrans=no --default 

libvpxをアップデート(./configure, make, sudo checkinstall は3-3と同様)

cd ~/libvpx
make clean
git pull
./configure
make
sudo checkinstall --pkgname=libvpx --pkgversion="1:$(date +%Y%m%d%H%M)-git" --backup=no \
  --deldoc=yes --fstrans=no --default
 

ffmpegをアップデート(./configure, make, sudo checkinstall は3-4と同様)

cd ~/ffmpeg
make distclean
git pull
./configure --enable-gpl --enable-libfaac --enable-libfdk-aac --enable-libmp3lame \
  --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libtheora \
  --enable-libvorbis --enable-libvpx --enable-x11grab --enable-libx264 --enable-nonfree \
  --enable-version3
make
sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(date +%Y%m%d%H%M)-git" --backup=no \
  --deldoc=yes --fstrans=no --default 
 
 

5. ffmpeg, libvpx, fdk-aac, x264 のアンインストール


3.でインストールした ffmpeg, libvpx, fdk-aac, x264 をアンインストールするには以下のコマンドを実行します。

sudo apt-get -y autoremove autoconf build-essential checkinstall fdk-aac ffmpeg git libfaac-dev libgpac-dev \
  libjack-jackd2-dev libmp3lame-dev librtmp-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev \
  libvorbis-dev libvpx libx11-dev libxfixes-dev pkg-config texi2html x264 yasm zlib1g-dev

そして,ホームフォルダー内の4つのフォルダー”ffmpeg, libvpx, fdk-aac, x264”を削除します。

sudo rm -r ffmpeg libvpx fdk-aac x264

参考


 1. https://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide

 2. http://de.wikipedia.org/wiki/Checkinstall

 3. http://linux-suomi.net/modules/sinyD0/index.php?id=18#05

 4. http://fixedpoint.jp/ffmpeg/ffmpeg-doc.html

 5. http://ja.wikipedia.org/wiki/Git

 6. http://ja.wikipedia.org/wiki/APT