Linux備忘録 -3ページ目

ファイルシステム確認

使用しているusbのファイルシステム(ext3,ntfsなど)を確認する方法を調べてみた。

http://www.atmarkit.co.jp/flinux/rensai/linuxtips/750chkfstype.html

によると、

df -T

を実行すればよいらしい。

sudo df -T

を行ったところ、きちんと表示された。

何故、mkfs -V が駄目だったのかが不明である。

http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230832/

によれば、

-V 詳細情報を表示する

なのだが・・・。



データ消去

Linuxでデータ消去したかったので、調べてみた。


検索した結果、

http://linux.kororo.jp/cont/intro/hdd_backup.php

を発見。

上記サイトによると、

dd コマンドはイメージの複製以外にも、HDD を完全に消去することもできます。ゼロ(zero)をディスク全体に書き込むことでデータを完全に抹消します。消去の対象となるのは、ディスク全体かパーティション全体になります。プライマリマスターのHDD全体を消去するには下記のコマンドを打ち込みます。

# dd if=/dev/zero of=/dev/hda

より安全にデータを消去したい場合は、以下のように乱数を生成する仮想デバイス/dev/urandom からのランダムデータを2回ほどHDDに書き込み、最後にもう一度/dev/zero でゼロを出力します。

# dd if=/dev/urandom of=/dev/hda
# dd if=/dev/urandom of=/dev/hda
# dd if=/dev/zero of=/dev/hda

らしい。

例えば、我が家でusbのデータを消去したい場合、

sudo dd if=/dev/zero of=/dev/sdc1

を実行すれば良い。

ddは、コピーでしか使用していなかった・・・。

0値をコピーする=0値を書き込む

ということなのか・・・?


java6インストール

sunのjavaをインストールしようと思ったのだが、synapticに無い・・・。



検索したところ、


http://d.hatena.ne.jp/Syo-Takasaki/20100502/1272758298


を発見。


このサイトによると、リポジトリを追加しないといけないらしい。面倒だが追加した。


http://archive.canonical.com/ lucid partner

がリポジトリのアドレスである(http://ubuntu-tweak.com/downloads/

参考にして、リポジトリを追加した).



/etc/apt/sources.list
を編集して追加。追加するのは下記の通り。

(sudo gedit /etc/apt/sources.list)

deb http://archive.canonical.com/ lucid partner
deb-src http://archive.canonical.com/ lucid partner

この2行をファイルの最終行に追加後に、ファイルを保存。

http://d.hatena.ne.jp/Syo-Takasaki/20100502/1272758298と同じようにアップデートを実行。そして、javaをインストール。


$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk



無事にインストールできた。



network 設定

http://studio-bey.chicappa.jp/dougubako/ubuntu_server/298

によれば、

/etc/network/interfaces


ファイルを編集する。

我が家は、eth1 なので、このような感じに編集すれば良い。

auto lo
iface lo inet loopback
auto eth1
iface eth1 inet static
address 192.168.100.10
netmask 255.255.255.0
gateway 192.168.100.1




以上の設定を
/etc/network/interfaces
へ保存したら、次に、DNSの設定をする。

sudo touch /etc/resolv.conf

として、新規でファイルを作った後、

 sudo gedit /etc/resolv.conf
として編集する。

 resolv.conf 設定例

nameserver 8.8.8.8
nameserver 8.8.4.4

我が家はGoogleの公開DNSを使用しているので、上記のようになる。

一般的には、ルータなのでしょうかね・・・?

ネットワークの再起動

 以上の設定を反映させるため、ネットワークを再起動します

 以下のコマンドを実行する。

sudo /etc/init.d/networking restart






eth1 eth2

何故だか分からないが、eth1がeth2と認識されてしまった。

調べたところ、下記サイトにて対処方法を発見。

https://forums.ubuntulinux.jp/viewtopic.php?id=9257

LANケーブルを直接接続しているのではなくUSBに変換して使用しているので、

少し状況は異なっていたが、ifconfig -aを行って現在使用しているdeviceと、

/etc/udev/rules.d/70-persistent-net.rules 

ファイルに記載されているdeviceを比較して、

/etc/udev/rules.d/70-persistent-net.rules の内容を

少々書き換えて再起動

ifconfigを行って確認したところ、無事にeth1に戻っていた。良かった・・・。

ffmpeg

https://forums.ubuntulinux.jp/viewtopic.php?id=9594
によると、ffmpegの書式は、

ffmpeg -i <入力ファイル> -f <フォーマット> -vcodec <動画コーデック>、<コーデックの詳細設定> -acodec <音声コーデック>、<コーデックの詳細設定> <その他のオプション...> <出力ファイル>

らしい。





フォーマットによっては、コーデックを指定しなくても変換できる場合があります(例:webm)

例えば、rec.ogvを、
フォーマット=avi
動画コーデック=mpeg2, 24fps, 5000kbps
音声コーデック=ac3, 44100Hz, 256kbps
でエンコードし、out.aviに保存したい場合は、以下のように実行します。
コード:

ffmpeg -i ./rec.ogv -f avi -vcodec mpeg2video -b 5000k -r 24 -acodec ac3 -ar 44100 -ab 256k ./out.avi
rec.ogvを、
フォーマット=mp4
動画コーデック=mpeg4, 24fps, 386kbps
音声コーデック=mp3, 44100Hz, 256kbps
でエンコードし、out2.mp4に保存したい場合は、
コード:

ffmpeg -i ./rec.ogv -f mp4 -vcodec mpeg4 -b 386k -acodec libmp3lame -ar 44100 -ab 256k ./out2.mp4


また、
http://ja.wikipedia.org/wiki/Ffmpeg

によると、

オプション

FFmpegでは数多くのオプションを利用することができる。それらはffmpegのバージョンによって差異があるため、利用前にオプションやコーデックの表記を確認することが望ましい。オプションは ffmpeg -h で表示できる。また、コーデック名等は ffmpeg -formats や ffmpeg -codecs で表示できる。( コーデック名は下記注意事項参照 )
一般的なオプション等の例を以下に挙げる。
メインオプション [編集]
-i 入力ファイル名を設定する。
-f 出力フォーマットの指定。
-y 出力するファイル名と同じ名前のファイルが出力先にある場合に上書する。
-fs 指定したファイルサイズになったら変換を終了する。
-ss 指定した時間から変換を開始する。
-title タイトルを設定する。
-timestamp タイムスタンプを設定する。
-vsync フレームをカットしたり加えたりして音声に動画を同期させる。
ビデオオプション [編集]
-b 動画部分のビットレートを設定、初期設定は200kbps。( 単位は下記注意事項参照 )
-r フレームレートの設定 初期設定は25
-s 動画のサイズを横×縦で設定
-aspect アスペクト比の設定
-vn ビデオを無効にする。音声部分のみのエンコードなどに使用する。
-vcodec ビデオコーデックを設定 設定しない場合は入力ファイルと同じコーデックを使用する。
オーディオオプション [編集]
-ab チャンネルごと(最近のSVN版では全チャンネル合計)のビットレートを設定する。( 単位は下記注意事項参照 )
-ar サンプリング周波数を設定する。
-ac 音声のチャンネル数を設定する。
-acodec 音声コーデックを設定する。設定しない場合は動画同様入力されたファイルと同じコーデックを使用する。
-an 音声を無効にする。ビデオ部分のみのエンコードなどに使用する。
-vol 通常の音量を256として音量を設定する。(2倍の音量にしたい時は512を指定する。)
注意事項 [編集]
-bや-abオプションでビットレートを指定する場合、ffmpegのバージョンによってkbpsの場合と、bpsの場合があるので注意が必要である。(ffmpeg -hでヘルプメッセージを表示させて単位を確認するとよい)
たとえば、単位がbpsの場合で64kbpsのビットレートを指定する場合は『 -ab 64k 』と指定し、単位がkbpsの場合は『 -ab 64 』と指定する。ビットレートの計算では一般的にk=1000であり1024ではない。
-acodecや-vcodecで指定するコーデック名は、ffmpegのバージョンによって違うことがある。たとえば、AACコーデックの場合、aacと指定する場合と、libfaacと指定する場合がある。また、デコードのみやエンコードのみできるコーデックもあるため、必ず ffmpeg -formats や ffmpeg -codecs で指定するコーデックが機能するか確認すべきである。
使用例 [編集]

ヘルプの表示
ffmpeg -h
対応形式の確認
# ファイル形式 (コンテナ/フォーマット/スプリッター)
ffmpeg -formats

# コーデック形式 (映像や音声の形式/圧縮アルゴリズム)
ffmpeg -codecs

# プロトコル形式 (スキーマも含む)
ffmpeg -protocols
動画をMPEG-4/AVC形式に変換する例 (ビットレート固定)
ffmpeg -i inputfile -f mp4 -vcodec libx264 -acodec libfaac -vb 256k -ab 64k outputfile.mp4

# -f の後に変換後のファイル形式、-acodec の後に変換後の音声コーデック、-vcodec の後に変換後の動画コーデックを指定する。
# -vb は変換後の映像のビットレート(ビット/秒)、-ab は変換後の音声のビットレート(ビット/秒)を指定する。
動画をMPEG-4/AVC形式に変換する例 (品質固定)
ffmpeg -i inputfile -f mp4 -vcodec libx264 -acodec libfaac -cqp 23 -aq 100 outputfile.mp4

# ビットレートを指定する代わりに品質を指定することができる。映像は cqp 、音楽は aq となる。
# 品質指定は cqp の場合、値が小さいほど品質が高いことを意味する。aq の場合、値が大きいほど品質が高いことを意味する。
# 値の意味は変換後のコーデックによるので注意。
音楽をAACに変換する例
ffmpeg -i inputfile -f aac -vn -acodec libfaac -ab 128k outputfile.aac

# -vcodec の代わりに -vn を使うことで変換後に映像を入れないという意味になる。同様に、-acodec の代わりに -an を使うことで音声を消すことも可能である。
MP4形式の動画から再エンコード無しでFLV形式に変換する例
ffmpeg -i inputfile.mp4 -vcodec copy -acodec copy outputfile.flv

# 変換後のフォーマットによっては、そのフォーマットの仕様の制限やFFmpegが未対応であることなどにより変換前のコーデックが入れられないことがある。
# また、-vcodec copy を -vn にすることによって、再エンコード無しで音楽だけにすることが出来る。
RTSPサーバーからMP4動画を保存する例
ffmpeg -i rtsp://example.com/inputfile.mp4 -vcodec copy -acodec copy -scodec copy outputfile.mp4

# 入力ファイルに直接URLを入れることができる。
RTSPサーバーに動画を送信する例
ffmpeg -re -i inputfile -f rtsp -vcodec libx264 -acodec libfaac -vb 256k -ab 64k rtsp://example.com/outputfile.mp4

# 出力ファイルにも直接URLを入れることができる。-re を付けると出力速度がリアルタイムになるように調整する。
サーバーとして動作させる例
# ffserver.conf を適切に編集してから以下を実行。
ffserver &
ffmpeg -i inputfile http://127.0.0.1:8090/feed.ffm
DVDのVOBファイルを、VideoCD形式のMPEG-1ファイルに変換する例
ffmpeg -i inputfile.vob -f mpeg -vcodec mpeg1video -acodec mp2 -vb 1152k -ab 128k -s 352x240 outputfile.mpg
動画を東芝のREGZAが認識できるMPEG2形式に変換する例
ffmpeg -i inputfile -target ntsc-svcd -ab 128k -aspect 4:3 -s 720x480 outputfile.mpg
複数のAVIの動画ファイルを結合する例(この例では、中間処理として、一度AVIファイルをMPEG-1ファイルに変換する必要がある(MPEG-1, MPEG-2 PS, DVも連結可能))
ffmpeg -i input1.avi -sameq inputfile_01.mpg
ffmpeg -i input2.avi -sameq inputfile_02.mpg
cat inputfile_01.mpg inputfile_02.mpg > inputfile_all.mpg
ffmpeg -i inputfile_all.mpg -sameq outputfile.avi
なお、concatスキーマ(concat:input.avi.part1|input.avi.part2)はストリームの物理的な結合のみ行うため、この場合は使えない。


mpegからmp3を作成する場合、

ffmpeg -i abc.mpg -f mp3 -vn abc.mp3

を実行すれば良い。