オープンソースソフト FFMpegを使って動画を一コマごとの画像にする方法を説明します。
画像にすると印刷やホームページ用の1コマを見つけやすくもなります。
ただし、動画の再生時間にもよりますが、数ギガの容量が必要になることがあります。
また、この方法を使うには、MS-DOSの知識が必要です。
テキスト動画で動画をJPEG画像にするというやり方もあります。
JPEG画像にする
ffmpeg -i "c:\tmp\smile.flv" -f image2 -vcodec mjpeg "c:\tmp\image%05d.jpg"
というコマンドを実行します。
最初の-i "c:\tmp\smile.flv"では入力ファイルを指定しています。
-f image2 -vcodec mjpeg ではJPEG出力を指定しています。
最後の"c:\tmp\image%05d.jpg"で保存先を指定しています。
%05dは5桁の数字という意味です。
1秒あたり30コマの1分の動画ですと
c:\tmp\ というフォルダーに image00001.jpgからimage01800.jpg ができます。
JPEGの高画質画像にする
先ほどのJPEG画像にする方法に品質を決めるオプションを保存先の前に追加します。
ffmpeg -i "c:\tmp\smile.flv" -f image2 -vcodec mjpeg -qscale 1 -qmin 1 -qmax 1 "c:\tmp\image%05d.jpg"
これでだいたい品質90%ぐらいになると思います。(品質100%の方法は不明です)
PNG画像にする
PNGの場合は、出力形式をPNGと指定します。また保存先のファイル拡張子も.pngとします。
ffmpeg -i "c:\tmp\smile.flv" -f image2 -vcodec png "c:\tmp\image%05d.png"
PNGは画質は一番いいはずですが、若干変換に時間がかかります。また画像のファイルサイズはJPEGの高画質よりもさらに大きくなります。
コマ数を減らす
1秒あたり30コマの1分の動画で、1800枚も画像ができるのは多すぎると思ったら
別途1秒辺りに画像を何枚作成するか指定できます。
例えば1秒あたりに、1枚ですと 次のように指定します。
ffmpeg -i "c:\tmp\smile.flv" -f image2 -vcodec mjpeg -r 1 "c:\tmp\image%05d.jpg"
すると、60枚画像が作成されます。
少数点(0.1)を指定すると、さらに少ない数だけ作成します。
無料なだけでなく、みんなが自由に使える オープンソースソフトを使い方の解説します。
2007年10月12日金曜日
2007年10月9日火曜日
PSP画面ズームで最高画質の動画を作る
世の中には、私みたいに、PSPへTV比率(4:3)の動画を再生時には、ズームでしか見ない人がいると思います。
そういう人の場合最初からズーム時のサイズで動画を作った方が高画質です。
ここではオープンソースソフト FFMpegで作成する方法を説明します。
ちなみに、akJ Betasの
ドロップFFMpeg を使うと簡単な操作でできます。
ffmpegを使った経験がなければ、難しいのですが
Googleで検索すれば、だんだんわかってきます。
通常の変換との違いは、動画の上下の不必要の部分を切抜きするだけです。
ただし、動画のサイズによって切抜きする量が異なります。
動画的に画面サイズは16で割れる数値が好ましいので中途半端な値になります。
ニコニコ動画でよく使われる画面サイズ512x384の動画の場合は、PSP画面サイズ(16:9)にするには、まずは512x288に切り抜く必要があります。
これは上下48づつ切り抜きますので
-croptop 48 -cropbottom 48 を-s の前に追加します。
元の動画がAvi動画でよくある画面サイズ640x480の場合は、PSP画面サイズ(16:9)にするには640x360に切り抜く必要があります。
これは上下60づつ切り抜きますので
-croptop 60 -cropbottom 60 を-s の前に追加します。
元の動画がYoutubeでよくある画面サイズ320x240の場合は、PSP画面サイズ(16:9)にするには320x180に切り抜く必要があります。
これは上下30づつ切り抜きますので
-croptop 30 -cropbottom 30 を-s の前に追加します。
ニコニコ動画の場合はコマンドはこうなります。
ffmpeg.exe -y -i "C:\smile.flv" -f psp -flags +bitexact -b 768k -ar 48000 -vcodec h264 -acodec aac -level 21 -r 29.97 -bufsize 224k -ac 2 -coder 1 -ab 128k -maxrate 768k -croptop 48 -cropbottom 48 -s 480x270 "C:\smile.mp4"
意外とこれだけでも結構いい画質になります。
そういう人の場合最初からズーム時のサイズで動画を作った方が高画質です。
ここではオープンソースソフト FFMpegで作成する方法を説明します。
ちなみに、akJ Betasの
ドロップFFMpeg を使うと簡単な操作でできます。
ffmpegを使った経験がなければ、難しいのですが
Googleで検索すれば、だんだんわかってきます。
通常の変換との違いは、動画の上下の不必要の部分を切抜きするだけです。
ただし、動画のサイズによって切抜きする量が異なります。
動画的に画面サイズは16で割れる数値が好ましいので中途半端な値になります。
ニコニコ動画でよく使われる画面サイズ512x384の動画の場合は、PSP画面サイズ(16:9)にするには、まずは512x288に切り抜く必要があります。
これは上下48づつ切り抜きますので
-croptop 48 -cropbottom 48 を-s の前に追加します。
元の動画がAvi動画でよくある画面サイズ640x480の場合は、PSP画面サイズ(16:9)にするには640x360に切り抜く必要があります。
これは上下60づつ切り抜きますので
-croptop 60 -cropbottom 60 を-s の前に追加します。
元の動画がYoutubeでよくある画面サイズ320x240の場合は、PSP画面サイズ(16:9)にするには320x180に切り抜く必要があります。
これは上下30づつ切り抜きますので
-croptop 30 -cropbottom 30 を-s の前に追加します。
ニコニコ動画の場合はコマンドはこうなります。
ffmpeg.exe -y -i "C:\smile.flv" -f psp -flags +bitexact -b 768k -ar 48000 -vcodec h264 -acodec aac -level 21 -r 29.97 -bufsize 224k -ac 2 -coder 1 -ab 128k -maxrate 768k -croptop 48 -cropbottom 48 -s 480x270 "C:\smile.mp4"
意外とこれだけでも結構いい画質になります。
2007年9月28日金曜日
DVD字幕をVSConvで画像にしてみよう!
画像にすると普段使っている画像閲覧ソフトで字幕が見られて便利です。
他にもいろいろ面白い使い道があるかもしれないですね!
ただし、この方法はMS-DOSを使いますので初心者には難しいかもしれません。
他にもいろいろ面白い使い道があるかもしれないですね!
ただし、この方法はMS-DOSを使いますので初心者には難しいかもしれません。
このような画像になります。
DVDから字幕の取り出しには、オープンソースのDVD字幕取り出しソフト VSRipを使います。
取り出したVOBSUB(idx/sub)字幕から画像への変換には、オープンソースのVOBSUB字幕変換ソフト VSConvを使います。
どうにか、VSRipを使ってVOBSUB(idx/sub)字幕を取り出したら
MS-DOSを開きます
そして、VSRipがあるフォルダーへMS-DOS上でディレクトリーを移動させます。
あとはそこからVSConvのコマンドを入力します。
idx/subに字幕が1つしか含まれていない場合は
以下のようにコマンドを実行します。
画像としては一番普通のwinsubmux形式とします。
他に、maestroという形式もあります。(こっちの形式は画像サイズが720x480なので色が変です)
他に、maestroという形式もあります。(こっちの形式は画像サイズが720x480なので色が変です)

また字幕の場所はc:\tmp\字幕jimaku.idx とします。
字幕の保存ベース名もc:\tmp\字幕\jimaku とします。
vsconv -f winsubmux -i "c:\tmp\字幕jimaku.idx" -o "c:\tmp\字幕jimaku"
すると、c:\tmp\字幕\ フォルダーの中に sub_000001.bmpから始まるBMPファイルができあがります。
1つのVOBSUB字幕ファイルに複数の字幕がある場合は何番目の字幕を取り出すかを指定して字幕をとりだします。
この場合上記のコマンドにidオプションが付きます。
(ここがややこしいのですが、番号は0から数えます。つまり1番目の字幕は0となります。)
idは1とします。(2番目の字幕を取り出し)
以下のようなコマンドになります
vsconv -f winsubmux -i "c:\tmp\字幕jimaku.idx" -o "c:\tmp\字幕jimaku" -id 1
id番号の見つけ方
通常はパッケージに字幕1は日本語で、字幕2は英語とか書かれていますので、そこから1を引いた番号がidとなります。
通常はパッケージに字幕1は日本語で、字幕2は英語とか書かれていますので、そこから1を引いた番号がidとなります。
それ以外には、変換元の .idxファイルをメモ帳で開いてみるといいです。
以下のように、idの所に、indexという形で書かれています。
# Japanese
id: ja, index: 1
# Decomment next line to activate alternative name in DirectVobSub / Windows Media Player 6.x
# alt: Japanese
# Vob/Cell ID: 2, 1 (PTS: 0)
2007年9月24日月曜日
VSRipをコマンドラインから使う
オープンソースのDVD字幕取り出しソフト VSRipの自動処理をしたい人に最適です。(初心者には必要ない知識です!)
MS-DOSから 以下のようなコマンドを使います。
VSRip setting.txt
このsetting.txt(ファイル名はなんでもいい)に設定を書きます。
設定ファイルの仕組み
1行目には、取り出す字幕のIFOファイルを指定します。
2行目には、保存先のベース名を指定します。このベース名に.idxと.subがついたファイルが出力されます。
3行目には、 1 と書きます。ここはプログラムチェーン(PGC)を指定する箇所なのですが、通常1以外ないです。
4行目には、0 と書きます。ここはアングルを指定する箇所ですが通常アングルを含むDVDはありません。
5行目には、取り出す字幕を指定します。通常、ALL ですべて取り出すか、番号を指定して指定の字幕を取り出します。
6行目には、終了後の動作を指定します。CLOSEで閉じます。SHOWでそのままダイアログが出たままになります。
普通は、CLOSEとします。(本来は、ここでenとかjaで言語を選択できるはずなのですが機能しません)
設定ファイル例
すべての字幕を取り出す。
d:\VIDEO_TS\VTS_01_0.IFO
C:\tmp\字幕テスト
1
0
ALL
CLOSE
これと同じです。

字幕を選択して保存
d:\VIDEO_TS\VTS_01_0.IFO
C:\tmp\字幕テスト
1
0
2
CLOSE
これと同じです。

設定ファイルに間違いがある場合 Error parsing parameter file!というダイアログが表示されます。
設定ファイルを見直しましょう。間違ったIFOファイルを指定した場合もこのダイアログがでます。

より詳しくは、英語ですが、以下を見てみてください。
http://forum.doom9.org/archive/index.php/t-54723.html
MS-DOSから 以下のようなコマンドを使います。
VSRip setting.txt
このsetting.txt(ファイル名はなんでもいい)に設定を書きます。
設定ファイルの仕組み
1行目には、取り出す字幕のIFOファイルを指定します。
2行目には、保存先のベース名を指定します。このベース名に.idxと.subがついたファイルが出力されます。
3行目には、 1 と書きます。ここはプログラムチェーン(PGC)を指定する箇所なのですが、通常1以外ないです。
4行目には、0 と書きます。ここはアングルを指定する箇所ですが通常アングルを含むDVDはありません。
5行目には、取り出す字幕を指定します。通常、ALL ですべて取り出すか、番号を指定して指定の字幕を取り出します。
6行目には、終了後の動作を指定します。CLOSEで閉じます。SHOWでそのままダイアログが出たままになります。
普通は、CLOSEとします。(本来は、ここでenとかjaで言語を選択できるはずなのですが機能しません)
設定ファイル例
すべての字幕を取り出す。
d:\VIDEO_TS\VTS_01_0.IFO
C:\tmp\字幕テスト
1
0
ALL
CLOSE
これと同じです。
字幕を選択して保存
d:\VIDEO_TS\VTS_01_0.IFO
C:\tmp\字幕テスト
1
0
2
CLOSE
これと同じです。
設定ファイルに間違いがある場合 Error parsing parameter file!というダイアログが表示されます。
設定ファイルを見直しましょう。間違ったIFOファイルを指定した場合もこのダイアログがでます。
より詳しくは、英語ですが、以下を見てみてください。
http://forum.doom9.org/archive/index.php/t-54723.html
2007年8月18日土曜日
手書きイラストをデジカメだけで取り込んで綺麗にする!(Potrace)
こんな感じの手書きをデジカメで撮ったのが、こういう風になります。
スキャナがなくても綺麗にと取り込めますよ!

ここでは、加工にGoogleの写真編集ソフト - PicasaとakJ Betasのフリーで画像からトレース ドロップPotraceの2つのソフトを使います。
まずはイラストを書くか、書いた物を用意します。線が入っていない紙に書いてくださいね!
次に、デジカメで撮影です。このときフラッシュはない方がいいです。中途半端に影が入らないようにあとなるべく水平にした方がいいです。
これぐらいでも大丈夫です。

つぎにこのデジカメで撮影した画像をPicasaで自動コントラストの調整(明るさを調整)します。

そして、イラストの所だけを、Picasaで画像を切り抜きします。
するとこういう画像になります。

この画像を、ドロップPotraceで変換するとこんな感じになります。
これでも十分なのですが、変な点とかがいらない場合は、

ドロップPotraceのpotraceのtの所の数値をあげます。これを上げると小さい線や点を省きます。

そしてもう1度ドロップPotraceで変換すると、こんな感じになります。

あと普通ですと、背景白に、線が黒という設定ですが、
ドロップPotraceの下側の上級設定タブをクリックして、ベクターの線色を変更すると、線の色を変更できます。
また、背景色を変更すると、背景の色を変更できます。

そして、もう1度akJBetasのドロップPotraceで変換するとこんな風になり完成です!
ブログに手書きイラストが欲しいときに便利ですね!
スキャナがなくても綺麗にと取り込めますよ!

ここでは、加工にGoogleの写真編集ソフト - PicasaとakJ Betasのフリーで画像からトレース ドロップPotraceの2つのソフトを使います。
まずはイラストを書くか、書いた物を用意します。線が入っていない紙に書いてくださいね!
次に、デジカメで撮影です。このときフラッシュはない方がいいです。中途半端に影が入らないようにあとなるべく水平にした方がいいです。
これぐらいでも大丈夫です。
つぎにこのデジカメで撮影した画像をPicasaで自動コントラストの調整(明るさを調整)します。

そして、イラストの所だけを、Picasaで画像を切り抜きします。
するとこういう画像になります。
この画像を、ドロップPotraceで変換するとこんな感じになります。
これでも十分なのですが、変な点とかがいらない場合は、

ドロップPotraceのpotraceのtの所の数値をあげます。これを上げると小さい線や点を省きます。

そしてもう1度ドロップPotraceで変換すると、こんな感じになります。

あと普通ですと、背景白に、線が黒という設定ですが、
ドロップPotraceの下側の上級設定タブをクリックして、ベクターの線色を変更すると、線の色を変更できます。
また、背景色を変更すると、背景の色を変更できます。

そして、もう1度akJBetasのドロップPotraceで変換するとこんな風になり完成です!
ブログに手書きイラストが欲しいときに便利ですね!
2007年8月17日金曜日
Potraceで写真からクリップアートを作成する
完成例です。



.jpg)
できあがったクリップアートは
暑中見舞いや年賀状、ブログやホームページに差し込むイラストとして使えます!
作り方は簡単です。
まずはデジカメでまわりの気になる物を撮ってみます。このとき写真のサイズは一番小さいので十分です。
そしてこれをPicasaなどの写真ソフトで必要な部分だけ切り取ります。

あとは、この切り取った写真をドロップPotraceでトレース画像にしてみます。
できあがった画像のいらない線などを、アクセサリーの中にあるペインター等の画像編集ソフトで消します。

これでクリップアートの完成です!

.jpg)
できあがったクリップアートは
暑中見舞いや年賀状、ブログやホームページに差し込むイラストとして使えます!
作り方は簡単です。
まずはデジカメでまわりの気になる物を撮ってみます。このとき写真のサイズは一番小さいので十分です。
そしてこれをPicasaなどの写真ソフトで必要な部分だけ切り取ります。
あとは、この切り取った写真をドロップPotraceでトレース画像にしてみます。
できあがった画像のいらない線などを、アクセサリーの中にあるペインター等の画像編集ソフトで消します。

これでクリップアートの完成です!
2007年7月30日月曜日
結合時の音ズレ防止のためにAviの音声長さを調整する
動画をファイルを結合する時、映像部分と音声部分の長さにずれがあります。
このズレが酷い場合で1秒近くあり、これが音ズレの原因になります。
ここでは音ズレを防ぐために、音声の長さを調整する方法を説明します。
ただし、VBRのMP3は正常に動作しません。この場合は、オープンソースの動画編集ソフト Virtualdubmodをお使いください。
Avi形式以外の動画は可能でしたらAviに変換してみてください。
FLVの場合はakJ BetasでFLV形式をAvi形式にするという方法があります。(音声はWavに変換してください)
以下のやり方でAvi動画からWav形式で音声を保存します。このとき、Virtualdubは開いたままにしておきます。
Avi動画から音声だけをMP3・Wav形式で保存する
次にメニューのFile/Infomationでファイルの情報を表示します。
ここで大事なのが2つで最初はfpsという値です。これは一秒間に 表示するコマ数を表します。
たいてい小数点を含む数値になっています。ここでは29.966です。
あとは、length:という合計のフレーム数(コマ数)です。ここでは7747となっています。

正確な時間を出すには、この合計コマ数を1秒あたりのコマ数(fps)で割ります。
アクセサリーの電卓を使いましょう。ここでは、以下のようになりました。258は秒数になります。60で割りますと、4なので、4分18秒 526329ということです。

さきほど取り出したWav音声ファイルを、オープンソースの音声編集ソフト Audacity
で開きます。開きましたらメニューから編集/カーソルの移動/トラックの最後へ移動します。

このときに、下に表示されていますのが、この音声の再生時間です。
ここですと、4:18.481633となっています。

音声の方が映像より長い場合は、最後をだいたい選択して、編集/削除で消します。

さきほどの映像の再生時間から音声の再生時間を引きます。
秒数は同じですので、小数点だけ、0.526329-0.481633となります。
その結果を後で使いますので、編集からコピーしておきます。

今度は、メニューの製作/Silenceを選びます。

そして無音の長さの所に、先ほどコピーしたものを右クリックメニューから貼り付けます。
そしてOKをクリックします。すると音声が調整されます。

あとはメニューからファイル/別名で書き出 WAVを選んでWavファイルで保存します。
今度は、Virtualdubに戻ってメニューよりAudio/WavAudioを選択します。
このとき、その下のDirect Stream Copyに●がついていないとダメです。ついていなければ、同じく、Direct Stream Copyを選択します。

このズレが酷い場合で1秒近くあり、これが音ズレの原因になります。
ここでは音ズレを防ぐために、音声の長さを調整する方法を説明します。
ただし、VBRのMP3は正常に動作しません。この場合は、オープンソースの動画編集ソフト Virtualdubmodをお使いください。
Avi形式以外の動画は可能でしたらAviに変換してみてください。
FLVの場合はakJ BetasでFLV形式をAvi形式にするという方法があります。(音声はWavに変換してください)
以下のやり方でAvi動画からWav形式で音声を保存します。このとき、Virtualdubは開いたままにしておきます。
Avi動画から音声だけをMP3・Wav形式で保存する
次にメニューのFile/Infomationでファイルの情報を表示します。

ここで大事なのが2つで最初はfpsという値です。これは一秒間に 表示するコマ数を表します。
たいてい小数点を含む数値になっています。ここでは29.966です。
あとは、length:という合計のフレーム数(コマ数)です。ここでは7747となっています。

正確な時間を出すには、この合計コマ数を1秒あたりのコマ数(fps)で割ります。
アクセサリーの電卓を使いましょう。ここでは、以下のようになりました。258は秒数になります。60で割りますと、4なので、4分18秒 526329ということです。

さきほど取り出したWav音声ファイルを、オープンソースの音声編集ソフト Audacity
で開きます。開きましたらメニューから編集/カーソルの移動/トラックの最後へ移動します。

このときに、下に表示されていますのが、この音声の再生時間です。
ここですと、4:18.481633となっています。

音声の方が映像より長い場合は、最後をだいたい選択して、編集/削除で消します。

さきほどの映像の再生時間から音声の再生時間を引きます。
秒数は同じですので、小数点だけ、0.526329-0.481633となります。
その結果を後で使いますので、編集からコピーしておきます。

今度は、メニューの製作/Silenceを選びます。

そして無音の長さの所に、先ほどコピーしたものを右クリックメニューから貼り付けます。
そしてOKをクリックします。すると音声が調整されます。

あとはメニューからファイル/別名で書き出 WAVを選んでWavファイルで保存します。

今度は、Virtualdubに戻ってメニューよりAudio/WavAudioを選択します。
このとき、その下のDirect Stream Copyに●がついていないとダメです。ついていなければ、同じく、Direct Stream Copyを選択します。

登録:
投稿 (Atom)

