「蒼弓ノート」 別館 雑記帳

Ogg Theora beta2 の ススメ



先日書いたエントリでのスクリプトとavisynth以外の関連プログラムを公開します。encta.avsスクリプトを書き換えることで、あらゆるソースの読み込み、加工が可能です。encta.avsに予め書かれているのはサンプルスクリプトです。サンプルのように入力ファイルの設定
を始めとするavisynthの処理内容はこのavsファイル内に記述します。サンプルでは"DirectShowSource"という機能を利用し、"c:\sample.avi"を30fpsであると想定してファイルを読み込もうとします。

スクリプトの記述が終われば、後は"encta.bat"を実行すれば全ての処理が行われます。theoraの設定を変更したい場合は、"encta.bat"を"theoraenc_help.txt"を参考に変更してください。エンコードされたファイルはカレントディレクトリに"output.ogg"として出力されます。

今回のセットでは特許問題回避のためにffmpegの不必要な機能をほぼカットしています。しかし、avisynth経由での処理には何ら問題はありません。

なお動作確認はWindows XP MCE 2005 とavisynth2.5で行っています。Windows2000やVistaで動作するかは解りません。MacやLinuxでは動きません。


カテゴリ: [ソフトウェア] - TrackBack(0) - 2008年01月31日 22:20:26
名前: コメント:

Ogg Theora beta2



自前でコンパイルして試してみた。エンコーダはencoder_example.cを使って、ffmpegからの出力を入力するようにした。avisynthをサポートしているffmpegならばソースを選ばないし、プリ処理も自由自在でいい感じ(その分複雑ではあるけれど)

ただエンコード結果としては、ブロックノイズが多い。Theoraの元となっているVP3ではこんなには酷くない。エンコードプロセスの問題か、ポストプロセスの違いか。
ffmpeg2theoraでもこの辺は変わらないようなので、現在のtheoraの問題点と言えるかも知れない。反面、モスキートノイズはマシになっている感じなのだが。ちゃんと比較したわけではないので気のせいかも知れない。

今回のバッチファイル
ffmpeg -y -i encta.avs -vn -acodec pcm_s16le -ac 2 -ar 48000 -f wav temp.wav
ffmpeg -bitexact -y -i encta.avs -vcodec rawvideo -pix_fmt yuv420p -an -f yuv4mpegpipe - | theora -v 1 -o output.ogg temp.wav -
del temp.wav

encoder_example.cの実行ファイルをtheora.exeにリネームしておく。
ffmpegはavisynth対応版が必須。
avisynthはもちろん必要。encta.avsにスクリプトを記述しておく。
encoder_example.cのオプション関係は"-?"とかすれば、説明が出てくる。(unknown optionとか言われるけど気にしない)


カテゴリ: [ソフトウェア] - TrackBack(0) - 2008年01月27日 11:38:54
名前: コメント:

トランス



久しぶりの書き込みです。年が明けて大分経ってしまいましたが、あけましておめでとうございます。

ところで表題のトランスですが、音楽のジャンルとしてのトランスではなく、変圧器のことです。
随分長いこと使っている機器のACアダプタからの振動音が昨年くらいから耳に付くようになってきていたため、分解してみたところ、2つのトランスとダイオード(らしきもの)が入っているだけのシンプルなものでした。そのトランス部分の片方がかなり振動しておりそれが騒音の原因でした。銅線巻きが緩くなってる感じで、少し押さえたら大分マシになりましたが少したったらまた再発しそうで恐い。
これも経年劣化というやつでしょうか。


カテゴリ: [その他] - TrackBack(0) - 2008年01月22日 22:16:30
名前: コメント:

OggVorbis-file-info. V.0.6 出来ました



やっとこさ、リリースです。
以前予告したように、今回のバージョンではビットレート推移が出力できるようになりました。

ただし、単体では単位時間あたりのビットレートをテキストで出力するだけなので、あまり見て楽しめるものではありません。そこでgnuplotというグラフ作成ツールを使ったグラフ化を簡単に出来るようにしました。
"-br" オプションを使うことで、2つのファイルが作成されます。1つは平均ビットレートの記述されたテキストファイル。もう1つは、gnuplot用のスクリプトファイルです。このgnuplot用のスクリプトファイルは直接gnuplotで読み込むことができ、gnuplotはそれに従って自動的にテキストファイルからグラフを作成し表示します。

余談ですが、今回久しぶりにダメ文字問題(特定の2byte文字がうまく処理できない)に向き合うことになり、昔に作ったプログラムのソースを見直してしまいました。なんというか、文字処理というのも結構泥臭い問題を抱えてるな、と改めて思った次第です。

追記 (2007年11月26日)
文字列の処理に一部問題があったので修正しました。特に"-br"オプションがうまく働かなかった方は新バージョンをお試しください。旧バージョンでもgnuplotでのグラフ表示がきちんと出来ているならば、出力結果自体に問題はないのでご安心を。

サンプル



カテゴリ: [vorbis] - TrackBack(0) - 2007年11月23日 15:50:55
  • vinfoが吐き出すスクリプトではエラーになる様です。gnuplotはSJIS対応が不完全みたいで、文字列を囲む引用符を " " ではなく全て ' ' にしたらロード出来ました。 -- 名無しさん (2007-11-24 05:16:24)
  • gnuplot4.2だとエラーが出ますね。4.0では大丈夫だったので問題を見落としていました。修正テスト版をこのページにアップロードしました。試してみてください。 -- 蒼弓 (2007-11-24 13:23:01)
  • fix版でロード出来るのを確認しました。どうもありがとう御座います。 -- 名無しさん (2007-11-24 17:37:05)
名前: コメント:

ビットレート・グラフ



vinfoにてビットレートの推移をファイルに出力できるようになりました。特徴としては一定サンプル毎に平均値を計算して、グラフにした時に見易い形にすることができます。またその際分解能(サンプル単位)を一定の範囲で変更することが可能です。

現在ではgnuplot用のスクリプトファイルも同時に出力するので、gnuplotを使ったグラフ化は非常に簡単になっています。

似たような機能を持ったツールにoggspotがありますが、これはVorbisストリームの最小単位であるブロック(注)ごとのデータ量からブロックごとのビットレートを計算するだけなので、ビットレート推移というよりブロックごとのデータ量の分布を見るものでした。

この機能を含んだ新しいバージョンは、近日中にリリースできると思います。

[注釈] ブロックについて
1ブロックはVorbisストリームでは1パケットとして扱われます。またVorbisにおける"ブロックサイズ"はウィンドゥサイズと一致します。


カテゴリ: [vorbis] - TrackBack(0) - 2007年11月11日 16:51:32
名前: コメント: