無料なだけでなく、みんなが自由に使える オープンソースソフトを使い方の解説します。

2007年7月18日水曜日

音声を合成する(Audacityを使って)

オープンソースソフト Audacityを作って、音声の合成の仕方を説明します。

カラオケ用楽曲とマイクで録音した自分の音声を合わせたり、
動画作成時の音声部分を作るときとかに活用してください。
AudacityはWav形式MP3形式の音声のみ開くことが可能です。

動画ファイルからのWav形式の変換には、acky ドロップ WavアンドMP3でWav音声変換で楽々変換 などの方法をお使いください。


合成したい音声を開いて保存するだけの非常に簡単です。

例えばカラオケの場合ですと、Audacityに音声ファイルをドラッグアンドドロップして、楽曲を開きます。



次にマイクで録音した自分の歌声をドラッグアンドドロップで開きます。するとファイルが開いて、また新しく開いたファイルが選択されています。


再生開始位置を変更するには?

イントロの所から録音していなかったりして、位置を変更したい場合はメニューから編集/カーソルの移動/トラックの最初を選択します。





メニューから製作/Silence を選びます。


ずらしたい秒数を入力します。何度も消したりしたらいいのでだいたいの数字を入れます。
無音の作成をクリックします。



すると無音が入りました。これで聞いてみます。ずらし方が足りなければ、再度同じことをします



ずらしすぎたと思ったら、戻したい秒数だけ範囲を選択して、メニューより編集/削除 を選んで消します。




あとはメニューからファイル/別名で書き出 WAVを選んでWavファイルで保存します。MP3で保存するには、別途設定が必要になります。

2007年7月16日月曜日

AviのFourCCを書き換える(Couldn't locate decompressor for format)

オープンソースソフト Virtualdubで、オープンソースソフト FFMpegで変換したAvi動画が変換できない時があります。
その場合、以下のようなエラーがでます。
Couldn't locate decompressor for format 'xvid' (unknown)

VirtualDub requires a Video for Windows (VFW) compatible codec to decompress video. DirectShow codecs, such as those used by Windows Media Player, are not suitable.


この場合 FourCCを書き換えることで解決できます。

ここではFourCCの書き換えにXVIDコーデックについてくるAviC.exeを使います。

C:\Program Files\Xvidの中のAviC.exeを起動します。(なければXvidをインストールしてください)




そこにFourCCを変更したいAviファイルをドラッグアンドドロップします。
すると現在のFourCCが表示されます。


Virtualdubで開く場合は、これを両方とも大文字のXVIDとします。
そして右下のApplyをクリックします。




DIVXというものもあります。こっちだとDivXコーデックで開くはず


DX50というDivXの5用?もあります。


VP6FはVP62にするとVirtualdubで開けるという説もあります。 (未検証!)

2007年7月14日土曜日

DVDStylerとVOBファイル

オープンソースソフト DVDStylerにVOBファイルを追加する場合4つ注意することがあります。

(1)暗号化されたVOBは登録できません。

(2)分割されたVOBは認識しません。

(3)結合されたVOBは場合によって認識しません。

(4)ビットレートが高すぎるVOBは扱えません。

暗号化されたVOBは登録できません。

市販やレンタルのDVDは暗号処理されています。
それらのDVDをDVDSTylerでは扱えません。

分割されたVOBは認識しません。
DVDロムから直接読み込む場合や
VSO DivxToDVD等で変換してもファイルが容量等で分割されているとうまく認識できません。
例えば、VTS_01_2.VOBVTS_01_3.VOBなど、拡張子VOBの前が、0や1以外の場合これらは分割されたVOBです。

この場合は、これら分割されているVOBを結合とうまくいきます。
以下のような方法があります。
DVDDecrypterでDVDをハードディスクに取り込みます
akJBetasでDVDのVOBを単純結合する
VOBMergeを使って複数のVOBファイルを結合して1つのファイルにする
ハードディスクのDVD・VOBタイトルセットファイルを結合する
ただし方法によっては、DVDStylerで認識できなく次の修正が必要になる場合があります。

ちなみに、DVDStylerでこういうエラーが出ます。

Create VOB files
MPEGファイルの修正:VTS_01_3.VOB
VTS_01_3.VOB is not a valid mpeg file
コマンド実行のエラー:mpgtx -f -d "VTS_01_3.VOB" -b "c:\tmp\dvd\title0-0-0"


又は

Erroneous packet size, skipping
INFO: [???] mplex version 2.0.0 (2.2.3 $Date: 2004/01/13 20:45:26 $)
ERROR: [???] File unrecogniseable!
ERROR: [???] File **ERROR: [???] Unrecogniseable file(s)... exiting.
コマンド実行のエラー: mplex -f 8 -S 0 -M -V -o "c:\tmp\dvd\title0-0-0.vob" "c:\tmp\dvd\title0-0-0-0.m2v" "c:\tmp\dvd\title0-0-0-0.mp1"


結合されたVOBは場合によって認識しません。

DVDDecrypterで結合して取り込んだ場合は問題ありませんが、それ以外では結合してもエラーがよく出ます。
この場合は
VOBの修復することでうまくいくことが多いです。

エラーはこんな風に出ます。
ERR: SCR moves backwards, remultiplex input.
コマンド実行のエラー:dvdauthor -o 'C:\dvd\' -x 'C:\dvd\dvdauthor.xml'

ビットレートが高すぎるVOBは扱えません。

例えVOBを結合して修復しても、VOBのビットレートが高いとDVDStylerでは扱えません。
具体的に言うと、
音声がLPCMの2層版のDVDのVOBや、
1層版でも再生時間が1時間を切るような物
の多くは映像と音声のビットレート合わせて、DVDの限界値に近い10000kbpsを超えている場合があります。
一方でDVDStylerで扱えるのは最大ビットレートは9200(数値は若干異なる場合有り)kbps、未満だったりします。
そのためこれらを変換しようとするとエラーが出ます。

この場合は、これらVOBのビットレートを落とす必要があります。
DVDのタイトルのままでしたら、フリーソフト DVD Shrinkを使うと高速に変換できます。
それ以外ですと、MPEG2変換ソフトでビットレートを落として再度作り直す他ありません。

エラーは同じくこのように出ます。

ERR: SCR moves backwards, remultiplex input.
コマンド実行のエラー:dvdauthor -o 'C:\dvd\' -x 'C:\dvd\dvdauthor.xml'


それ以外のDVDStylerのエラーなどは - DVDStylerでのよくあるエラー対応

2007年7月11日水曜日

問題が発生したため、ffmpeg.exeを終了します。ご不便をおかけして申し訳ありません。

問題が発生したため、ffmpeg.exeを終了します。ご不便をおかけして申し訳ありません。


オープンソースソフト FFMpeg

問題が発生したため、ffmpeg.exeを終了します。ご不便をおかけして申し訳ありません。
のエラーは私の環境(Windows XP SP2)では主に以下の4つの条件で起きます。(まれにもう3つ)

Wingdows VistaではpthreadGC2.dllがffmpeg.exeのフォルダーの中になくても起きるようです

(1)FFMpeg 9260や9494などでh.264変換(-vcodec h264やlibx264)を選択した場合

(2)ファイルサイズが0の無効なファイルを入力として選んだ場合

(3)スレッド未対応のパソコンで-threadsを使用した場合やスレッド未対応の機能(h.264以外)で-threadsを使った場合

(4)メモリの空きが不十分(最低30MBほど必要)で変換を選択した場合

稀におきます
(5)Intel以外のCPU(AMD・Transmeta)でh.264/avcを使うとき

(6)一部のFFMpeg(rev.14913やrev.14941)でh.264/avc使用時に、-rc_eq=blurCplx^(1-qComp)の指定がない場合

(7)Avisynth(AVS)経由でファイルを開いた場合

FFMpeg 9260や9494などでh.264変換(-vcodec h264やlibx264)を選択した場合

原因は不明、他で起きているのかわかりませんが、いずれにせよ -vcodecにh264を指定するとファイルの種類関係なく ffmpeg.exeが終了します。

元々、最新のffmpegは一般公開用ではないので、機能のいくつかが使えなくても不思議ではありません。
この場合は、9133や9017を使うといいでしょう。


ファイルサイズが0の無効なファイルを入力として選んだ場合

FFMpegの場合、変換に失敗すると、サイズ0のファイルを作成します。
間違ってこのファイルを入力元として選択した場合、ffmpeg.exeが終了します。


スレッド未対応のパソコンで-threadsを使用した場合やスレッド未対応の機能(h.264以外)で-threadsを使った場合

スレッドオプション -threads 2があります。これを使うとh264変換など40%ぐらい早くなりますが、すこし古いパソコンの場合は

未対応のためffmpeg.exeが終了します。
このオプション(-threads 2)を外すことで解決できます。
スレッドに対応しているパソコンでも、h.264変換で以外で使うと、ffmpeg.exeが終了する時があります。


ちなみに、オープンソースソフト akJ Betasでは設定のFFMpeg設定の高速処理のチェックで設定します。






メモリの空きが不十分(最低30MBほど必要)で変換を選択した場合



ffmpeg.exeの場合、変換内容(素材の画面サイズ等)にもよりますが30MBや40MBぐらいメモリが必要になります。


そして十分なメモリが無い場合、ffmpeg.exeが終了します。





現在のメモリの空き容量の確認は


CTRLとALTとDELキーを同時に押すことで、windows タスクマネージャーを表示でき


そこの下側に現在の使用量と最大メモリ量が表示されています。

Intel 以外のCPU(AMDやTransmeta)でh.264/avcを使ったとき

具体的には、PSPやMP4変換の時におきます。原因は、FFMpegというよりは、使用しているh264ライブラリーが原因のことが多いです。AMD用のffmpegだとうまくいくかもしれません。

PSP変換でも、xvidを使うとうまくいきます

一部のFFMpeg(rev.14913やrev.14941)で映像にh.264/avc使用時に、-rc_eq=blurCplx^(1-qComp)の指定がない場合

正確に言うと、FFMpegのRevisionが問題ではなく、内部で使用しているx264のリビジョンの問題だと思います。

この rc_eq=blurCplx^(1-qComp) の指定がない場合、起きることがあります。

Avisynth経由でファイルを開いた場合
ファイルをうまくしょりできなかったのが原因だとは思いますが、Windows Media Audio 9 Professionalは失敗しました。

2007年7月9日月曜日

ffmpeg:Unknown codec 'aac'

オープンソースソフト FFMpegを使って変換すると
Unknown codec 'aac' と出て変換が失敗する時があります。



この場合原因は2つあります。



一つめは、2007年6月頃からのFFMpeg リビジョン 9260や9494とかには、エンコード時には、aacではなく、libfaacという風にしなくてはならなくなっています。



つまり、-acodec aac の部分を、-acodec libfaac としなくてはいけません。



同じ時期に、コーデック指定でmp3やxvidやh264も、libmp3lame libxvidやlibx264となりましたが、
これらは、それぞれ前のままの名称でも大丈夫なのにaacだけUnknown codecとなるようです。

何か理由があるのでしょうか?すごくなぞです。だれかわかりましたら教えてください。




2つめは、単純にaacをエンコードするための機能がそのffmpegに付いていないだけです。




ffmpegは用途に合わせて、必要ない形式のエンコード機能を省くことが可能です。


 これは、ffmpeg -version を表示したとき等に最初に表示される、configuration の行にenable-libfaacがない場合や

あるいは ffmpeg -formats の表示のCodecsの部分で EA libfaac や DEA aac という表示があるかで判断できます。



オープンソースソフト akJ Betasでもバージョン 0.5.2.2未満では一つめの原因ででエラーが起きますので注意してくださいね。

2007年7月2日月曜日

Pyinstallerの使い方(Youtube-dl.pyをexeに)

ここでは、PythonスクリプトをExeファイルに変換するPyinstallerの使い方を簡単に説明します。



ここでは人気のYoutubeがダウンロードできる人気のスクリプト youtube-dl.pyをExeに変換してみます。



上級者向けです。


Pythonは2.4以降をインストールしておきます。



Pyinstallerの入手


以下のStable Downloadsから最新を落とします。


http://pyinstaller.python-hosting.com/




pythonからexe


youtube-dl.pyをpyinstallerのフォルダーにコピーします


MS-DOSを開いて


pyinstallerのあるディレクトリーへ移動したら

(一番最初だけ c:\python24\python.exe Configure.py を実行します)


以下のコマンドを実行します


c:\python24\python.exe Makespec.py youtube-dl.py
c:\python24\python.exe Build.py ./youtube-dl/youtube-dl.spec

すると以下のようなログができて、youtube-dlというフォルダーのdistyoutube-dlにyoutube-dl.exeができています。


ただし配布するときはdistyoutube-dlの中身をすべて一緒に配布します。


wrote C:\pyinstaller_1.2\youtube-dl\youtube-dl.spec
now run Build.py to build the executable
checking Analysis
building Analysis because out0.toc non existent
running Analysis out0.toc
Analyzing: support\_mountzlib.py
Analyzing: support\useUnicode.py
Analyzing: youtube-dl.py
W: Cannot determine your Windows or System directories
W: Please add them to your PATH if .dlls are not found
W: or install starship.python.net/skippy/win32/Downloads.html
Warnings written to ./youtube-dl\warnyoutube-dl.txt
checking PYZ
rebuilding out1.toc because out1.pyz is missing
building PYZ out1.toc
checking PKG
rebuilding out3.toc because out3.pkg is missing
building PKG out3.pkg
checking ELFEXE
rebuilding out2.toc because youtube-dl.exe missing
building ELFEXE out2.toc
checking COLLECT
building out4.toc because out4.toc missing
building COLLECT out4.toc

質問 掲示板