2011年7月8日金曜日

ストリーミング動画のダウンロード => iOS用動画への変換を一括で処理するシェルスクリプト

環境
・Ubuntu 11.04 Desktop 64bit
・MPlayer 1.0rc4-4.5.2
・HandBrake 0.9.5


前々回は、ストリーミング動画のダウンロード、前回は、iOS用動画への変換方法を説明したので、今回は、合わせ技で、複数のストリーミングファイルを一括ダウンロード => 動画変換するシェルスクリプトを公開します。


download() {
  seq="seq $1"
  for i in `$seq`
  do
    if [ $i -lt 100 ]; then
      i=0$i
    fi
    filename=$2$i
    mplayer mms://wm.hoge.jp/wm2/fuga/streaming/$2/$3_$i.wmv -dumpstream -dumpfile $filename.wmv
    HandBrakeCLI -i $filename.wmv -o $filename.m4v --preset="iPhone & iPod Touch" --optimize
  done
}


cd ~/Videos
download "61 80" "piyo" "1615"

簡単なので、ソースコードの説明は不要ですね。

2011年7月6日水曜日

Ubuntuで、動画をiOSで閲覧できる形式に変換する

環境
・Ubuntu 11.04 Desktop 64bit
・HandBrake 0.9.5


iOS用動画を作るのに、HandBrakeというツールを使います。あまり細かい設定はできませんが、CUIでもGUIでも使えるので、便利です。


インストール
$ sudo add-apt-repository 'deb http://ppa.launchpad.net/stebbins/handbrake-releases/ubuntu natty main'
$ sudo add-apt-repository 'deb-src http://ppa.launchpad.net/stebbins/handbrake-releases/ubuntu natty main'
$ sudo apt-get --quiet update
$ sudo apt-get -y install handbrake-cli handbrake-gtk


使い方
HandBrakeは、GUIで使うこともできますが、複数のファイルをまとめて変換したい場合は、コマンドの方が便利です。
$ HandBrakeCLI -i filename.wmv -o filename.m4v --preset="iPhone & iPod Touch" --optimize
オプションは下記のとおりです。
-i・・・インプットファイル名(DVD-Videoも可)
-o・・・アウトプットファイル名
--preset・・・プリセットの設定
--optimize・・・Web用に最適化


以上。

2011年6月24日金曜日

Ubuntuでストリーミングを保存する

環境
・Ubuntu 11.04 Desktop 64bit
・MPlayer 1.0rc4-4.5.2

MPlayerのインストール
MPlayerというツールを使うことで、ストリーミングの保存ができるようになります。
$ sudo apt-get install mplayer


asxファイルのダウンロード
保存したいストリーミングのasxファイルをテキストエディタ等で開き、mms://〜から続くファイル本体のパスをコピーします。


使い方
$ mplayer mms://wm.hoge.or.jp/wm2/streaming/101.wmv -dumpstream -dumpfile fuga.wmv
オプションは下記のとおりです。
-dumpstream・・・ストリーミングを保存する
-dumpfile・・・保存するファイル名


以上。

2011年6月16日木曜日

UbuntuのLibreOffice文字化け問題を解消する

環境
・Ubuntu 11.04 Desktop 64bit


Ubuntu 11.04のLibreOfficeは、なんと、デフォルトでメニューが文字化けしています!
これを解消するためには、[システム] > [設定] > [外観の設定]で、アプリケーションのフォントをTakaoフォント等に変更しましょう。


ちなみに、Takaoフォントには、
  • Takao ゴシック
  • Takao Pゴシック
  • Takao Exゴシック
の三種類があります。
ゴシックとPゴシックの違いはわかるのですが、Exゴシックって、一体何なんだろうと、前々から疑問に思ってました。
そこで、調べてみたところ、欧文文字の欧文文字の部分は変動幅、和文文字の部分は固定幅になったフォントのことみたいです。
「IPAexフォント」が無償公開、IPAフォントの等幅とプロポーショナルを統合 - ニュース:ITpro
なるほど、これは便利ですね。

2011年6月14日火曜日

UbuntuでDVD-VideoのISOを再生

環境
・Ubuntu 11.04 Desktop 64bit


今回は、前回作ったDVD-VideoのISOをUbuntuで再生してみることにします。


プレイヤーのインストール
VLCというプレイヤーなら、ISOをそのまま再生することが可能です。
$ sudo apt-get install vlc


使い方
VLCメディアプレイヤーを開いて、【メディア】 => 【ファイルを開く】から、ISOを選択します。


以上。

2011年6月9日木曜日

UbuntuでDVD-Video形式のISOを作成する

環境
・Ubuntu 11.04 Desktop 64bit


前々回にDVDのバックアップ方法を書いたので、今回は、DVD-Video形式のISOファイルの作り方を説明します。使用するのは、Ubuntuに標準で入っているmkisofsです。


使い方
$ mkisofs -udf -dvd-video -o hoge.iso $HOME/dvdfolder
オプションは下記のとおりです。
-udf・・・ファイルシステム
-dvd-video・・・DVD-Video形式で作成
-o・・・出力するISOのファイル名


以上。

2011年6月3日金曜日

64bit版Ubuntuでpogoplugを使う

社内用のファイルサーバとして使う目的で、pogoplug bizを一台購入しました。
Linux用のクライアントも用意されているので、今回はそれをUbuntuにインストール。


環境
・Ubuntu 11.04 Desktop 64bit


pogoplugfsのインストール
$ cd /tmp
$ wget http://download.pogoplug.com/install/linux/pogopluginstall.tar.gz
$ tar zxvf pogopluginstall.tar.gz
$ mv pogoplugfs ~


64bit環境で使うためのライブラリをインストール
このままpogoplugをマウントしようとすると、下記のようなエラーメッセージが表示されてしまいます。
pogoplugfs: error while loading shared libraries: libfuse.so.2: wrong ELF class: ELFCLASS64

これを解消するために、下記のライブラリを追加でインストールします。
$ sudo apt-get install ia32-libs

$ wget http://frozenfox.freehostia.com/cappy/getlibs-all.deb
$ sudo dpkg -i getlibs-all.deb

$ getlibs libfuse.so.2


pogoplugのマウント
準備が整ったので、pogoplugをマウントしてみます。
$ mkdir ~/enteryourmountpoint
$ ./pogoplugfs --mountpoint ~/enteryourmountpoint --user hoge@fuga.com --password enteryourpassword

このままでもマウントはできるものの、こんなエラーが出るので、
fusermount: failed to open /etc/fuse.conf: Permission denied

パーミッションを変更しましょう。
$ sudo chmod a+rwx /etc/fuse.conf

これで、設定は終了です。


スタートアップへの追加
最後に、pogoplugのマウントを起動時に行う設定を追加します。
pogoplug=`cat <<EOF
[Desktop Entry]
Type=Application
Exec=/home/hoge/pogoplugfs --mountpoint /home/hoge/enteryourmountpoint --user hoge@fuga.com --password enteryourpassword
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[ja_JP]=Pogoplug
Name=Pogoplug
Comment[ja_JP]=
Comment=
EOF
`
echo "$pogoplug" > $HOME/.config/autostart/pogoplugfs.desktop


以上。


問題点
1. LibreOfficeのエラー
LibreOfficeに関連付けられたファイルを開こうとすると、
/home/hoge/enteryourmountpoint/ShareDrive/libreofficefile.odsへアクセスする際の一般的な入力/出力のエラー。
というエラーメッセージが出て、開けません。
これに関しては、また後日調査しようと思います。

2. パフォーマンスが悪い
2.7GBのファイルをコピーするのに、160分以上もかかってしまいました。
また、ディレクトリの階層を移動するときに、2秒くらい待たされるので、ちょっとストレスがたまります。

3. クライアントのバグ
Windows用クライアントだと、なぜか同じフォルダが何個も表示されてしまうというバグがあります。
iPhone用クライアントも、4.2にバージョンアップしたら、pogoplugに接続できなくなってしまいました。
私が触った中では、Android用のクライアントが一番完成度が高かったです。

2011年5月30日月曜日

UbuntuでDVDをバックアップ

環境
・Ubuntu 10.10 Desktop 64bit


Medibuntuのリポジトリを追加
$ sudo wget --output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list && sudo apt-get --quiet update && sudo apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring && sudo apt-get --quiet update


dvdbackupのインストール
$ sudo apt-get install libdvdcss2
$ sudo apt-get install dvdbackup


使い方
dvdbackup -M -i /dev/sr0 -n hoge -o /home/fuga
オプションは下記のとおりです。
-M・・・DVD全体をバックアップするときに使うオプション
-i・・・ターゲット(DVDドライブ)のディレクトリ
-n・・・保存するときに作成されるフォルダの名前
-o・・・保存先のディレクトリ


しばらくまてば、/home/fuga/hogeにVIDEO_TSフォルダが出来上がっているはずです。
あまり細かい設定は出来ませんが、シンプルで使い勝手は良いです。


以上。

2011年4月11日月曜日

Ubuntu 10.10にBlender 2.5をインストール

環境
・Ubuntu 10.10 Desktop 64bit


$ sudo add-apt-repository ppa:cheleb/blender-svn
$ sudo apt-get update
$ sudo apt-get install blender


以上。

2011年1月5日水曜日

RubyからGoogleスプレッドシートのデータを取得

環境
・Ubuntu 10.10 Desktop 64bit
・Ruby 1.9.2
・gdata 1.1.1


RailsからGoogleスプレッドシートのデータを取得して、DBにインサートするという機能を、今から作ろうと思っています。


Googleスプレッドシートのデータを操作するには、gdataというライブラリを使用します。
Ruby 1.9.2でgdataをrequireすると、下記のようなエラーが出てしまいます。
`require': no such file to load -- jcode (LoadError)


これを解消するためには、
$HOME/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/gems/1.9/gems/gdata-1.1.1/lib

require 'jcode'
$KCODE = 'UTF8'
この箇所を、
if RUBY_VERSION < '1.9'
  require 'jcode'
  $KCODE = 'UTF8'
end
という風に書き換えます。


あとは、
rubyからGoogle Data APIでGoogleDocsのSpreadSheetを参照してみた - 三並慶佐 - hi-fi-Net Blog
を参考に、セルの値を読み出してみます。


require "rubygems"
require "gdata"

client = GData::Client::Spreadsheets.new
client.clientlogin('******@gmail.com', 'enteryourpassword')

key = "****************************************"
sheet = 1
feed = client.get("https://spreadsheets.google.com/feeds/cells/#{key}/#{sheet}/private/full").to_xml

row_count = feed.elements['gs:rowCount'].text.to_i
col_count = feed.elements['gs:colCount'].text.to_i
puts "row_count=#{row_count}"
puts "col_count=#{col_count}"

sheet_data = []
feed.elements.each('entry') do |entry|
gs_cell_el = entry.elements['gs:cell']
col = gs_cell_el.attribute('col').value.to_i
row = gs_cell_el.attribute('row').value.to_i
text = gs_cell_el.text
puts "#{col} #{row} #{text}"
end


シートインデックスは、0ではなく、1から始まることに注意しましょう。