Hack BBS
[全部のスレッド一覧][新規投稿][記事の削除・変更]
[Home Page]
返信投稿はタイトルのリンクをクリックして下さい
スレッド【No.3299】の中の記事をすべて表示しています
【No.3299】のスレッド
05/11/18(金) 02:16:58 投稿者[へいはち
] [No.3299]のスレッド内
- 【No.3299】 タイトル[hack de 録!! 録画ファイル自動変換への道]
この記事がスレッドの最初です
- 録画済みファイルを、ffmpegを使って自動変換させようと考えまして。
まず手始めとして、ffmpegを入れてみました。
備忘録的に、こちらにメモしておきます。
ソース持ってきて、./configure;make;make install の繰り返しでいけるかと思ったのですが、すんなりとはいかなかったもので。
なお、hack de 録!!で録画されるmpeg2の動画ファイルを小さくすることが狙いですので、コーデックはlameとdivxあたりしか入れてません。
なお環境はVine3.1化したHD-HGLANです。開発環境は最新です。
-----------
・xvidの導入
xvidcore-1.1.0-beta2.tar.bz2 でOK。
./configure;make;make install で導入可能。
・lameの導入
lame 3.9.6.1でOK。
・ffmpeg
現在配布中の安定最新版、0.9.4-pre1だと、xvidに対応していない。
よってCVS版を使う。
ただ現在の最新は50.1.0だが、それを使うと、-vcodec のオプションでxvidを指定すると「そんなコーデックはない」と、なぜか叱られてしまう。
CVS版てひとつ前、2005−09−16付けの、ビルド 50.0.0を使う。
取得コマンドは以下の通り。
cvs -z9 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg co -D "2005-09-16" ffmpeg
インストールのためのオプションは以下の通り
#./configure --enable-mp3lame --enable-xvid --enable-gpl --disable-altivec --disable-ffserver --disable-ffplay --disable-vhook --disable-zlib --disable-network
#make
#make install
xvid+mp3のエンコードに必要ないものすべてOFF。
-----------
……で。
肝心のエンコード性能なんですが。
xvidで1パスの場合、だいたい元動画の14倍くらいの時間が必要でした。
同じmpeg4でも、コーデックをmsmpeg4v2にしておくと、7倍で済むのですけど。
1日は24時間しかなく、時間は有限です。
xvidで変換をかけようとすると、1日につき動画80分、1週間だと9時間30分が限界ということに……。
かなり微妙な線です。
うちの場合、毎週の録画分は、いまのところ3時間くらいなので足りそうですが。
比較対象として、同じバージョンのffmpegを、WINDOWSのMinGW環境でコンパイルしたもの結果と並べてみます。
--------------------------
ffmpeg build 50.0.0(3276800) MinGW版
WINDOWS-XP Pentium4 3GHz (presscott-1MB cache HT)
94s / 153s = 0.614
ffmpeg (build 4759 cygwin版 携帯動画変換君に付属)
WINDOWS-XP Pentium4 3GHz (presscott-1MB cache HT)
313s / 153s = 2.046
ffmpeg build 50.0.0(3276800)
linkstation Vine Linux 3.1 PPC-266MHz
32m27s / 153s = 12.725
--------------------------
動画長さ / 変換時間(実CPU時間) = 倍率
携帯動画変換君だと、Pentium4の3GHzでXVIDへの変換でも、動画の長さの2倍ほどかかってます。x264だと、さらに2〜3倍ほどかかります。
MinGW版だと、3倍ぐらい速くなります。それでもようやく時間比が1を切るという程度。
なおWINDOWSのMinGW環境でコンパイルするには、xvidiff.cを手直しして、コンパイルオプションにパスを追加しないとなりませんでした。
ここの話題ではないですが、いちおう、そちらも書いておきます。
xvidiff.cへのパッチ
*** ffmpeg/libavcodec/xvidff.c Sat Aug 6 18:46:04 2005
--- ffmpeg-50.1.0/libavcodec/xvidff.c Thu Nov 17 17:07:29 2005
***************
*** 29,34 ****
--- 29,53 ----
#include "avcodec.h"
#ifdef CONFIG_WIN32
#include <fcntl.h>
+ /* Added for windows compile ----------------- */
+ #include <windows.h>
+
+ int mkstemp(char* template)
+ {
+ char temppath[512];
+ if(GetTempPath(512,temppath)!=0)
+ {
+ if(GetTempFileName(temppath,"fil",0,template)!=0)
+ {
+ FILE *pFile;
+ pFile=fopen(template,"w+");
+ if(pFile!=NULL)
+ return (int)pFile;
+ }
+ }
+ return -1;
+ }
+ /* ------------------------------------------- */
#endif
/**
./configureオプション
x86 minGW XVID+LAME+AC3 (スタティックリンク用)
./configure --enable-memalign-hack --enable-mingw32\
--enable-xvid\
--enable-mp3lame\
--enable-a52 --enable-gpl\
--extra-cflags=-I/local/include --extra-ldflags="-static -L/local/lib"
※スタティックリンクされたffmpeg.exeを作るためには、/usr/local/lib/xvidcore.a を、libxvidcore.a とリネームしてmakeするか、手動でリンクしないとならない。Makefileにバグ有り。
ダイナミックリンク版のままだと、xvidcore.dllを、ffmpeg.exeと同じディレクトリか、C:\WINDOWS\SYSTEM32 にコピーしておかなければならない。
xvidcore,mp3lameのバージョンは同上。./configure;make;make install でOK。
gccは3.4.4。
05/11/18(金) 02:18:53 投稿者[へいはち
] [No.3299]のスレッド内
- 【No.3300】 タイトル[今後の展望]
【No.3299】に対する返信
- ffmpegの性能が、とほほだったもので、だいぶ気力が萎え萎えです。
スクリプトを組んで自動処理させてみる予定だったのですが……。
普段使っているWINDOWSマシンとのクロック比は11くらいなので、linkStationもけっこういけるんじゃないかと思っていましたが。
LinkStationのPPCは、ベクトル演算器を持っていないことを忘れてました。
MMXやSSEに相当するものがないせいで、さらに2倍くらい遅くなってしまっています。
1時間エンコードするのに、14時間くらいかかるとなると……。
sambaで共有させておいて、WINDOWS側からフォルダを監視して、変換もWINDOWS側からやったほうがよいのかも。
そんなわけでMinGW版のffmpegをこしらえたりしてたわけですが。