2011年11月28日

【ffmpeg】CPU スレッド数管理

寝る前の。

私は自前サーバがLinux(fedora 16 x86_64)なこともあるため、
・地デジ ts→mp4保存
・Blu-ray m2ts→mp4保存(ドライブ自体は会社でいただいたものw)
・上記のものをpspで見れるように変換(mp4 → psp形式mp4)
なんてことのために、ffmpeg生で叩いてます。
(携帯動画変換君の中身とか言えばピンとくる人もいるのかな)

./configureから自前で、gitで取って、x264とかMP4Boxとかその辺のライブラリ入れた後、

./configure \
--prefix=/usr/local \
--bindir=/usr/local/bin \
--datadir=/usr/local/share/ffmpeg \
--incdir=/usr/local/include \
--libdir=/usr/local/lib \
--mandir=/usr/local/share/man \
--arch=x86_64 \
--enable-cross-compile \
--target-os=linux \
--enable-nonfree \
--enable-version3 \
--extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' \
--extra-version=rpmfusion \
--enable-bzlib \
--enable-libopencore-amrnb \
--enable-libopencore-amrwb \
--enable-libdc1394 \
--enable-libdirac \
--enable-libfaac \
--enable-libgsm \
--enable-libnut \
--enable-libmp3lame \
--enable-libopenjpeg \
--enable-librtmp \
--enable-libschroedinger \
--enable-libspeex \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libxvid \
--enable-x11grab \
--enable-postproc \
--enable-pthreads \
--enable-filter=avfilter \
--enable-filter=avfilter-lavf \
--disable-static \
--enable-shared \
--enable-gpl \
--disable-debug \
--disable-stripping \
--shlibdir=/usr/local/lib \
--enable-runtime-cpudetect \
--enable-librtmp \
--extra-libs='-lrtmp -lpolarssl '

んなことでバイナリ作ってます。
(怒られたら、足りないライブラリ-develをyumで入れるだけ。結構楽。まぁ、いらんライブラリも結構あるけど。)
この辺はまたいずれ。

余談ですが↑をWIndowsサーバに憧れてmingwでやったときは結構きつかった。
mingwにはyumもaptもないからきっつい。自力でconfigure/make/make install の繰り返し。
またこれもいずれ。

ちなみにh264 / libfaacでエンコするわけですが、h264のプロファイルはオプションが多すぎる。
psp2.1プロファイル(だったか)を調べてたとき神のような設定をしていた人がいるのでそれを使ってたりします。
(ffmpegだったら、/usr/local/share/ffmpeg/libx264-(プリセット名).ffpresetに保存。
うちのは↓見たいな感じ。)


coder=1
level=21
b=1200k
bufsize=512
g=250
crf=21
qmin=16
qmax=37
bf=3
subq=9
trellis=2
cmp=chroma
directpred=3
b_strategy=1
partitions=parti4x4+partp8x8+partb8x8
flags2=+wpred+mixed_refs
sc_threshold=60
keyint_min=5
me_method=esa
me_range=32
refs=3
rc_eq="blurCplx^(1-qComp)"
qcomp=0.3


んで、鯖も強化して
Core i5 2500でやってみてますが意外とパフォーマンスが出ないような気がする。
sshで入るときに遅くなったのは結構心配した。

うーん、HDDも早くしないといかんかなぁと思ってたとき、こんなオプションを見つけた。


-threads (CPUハイパースレッド数)


Core i5 2500は4コア4HTですが、4HTをうまくいかせているのかわからなかったわけですが
このオプションを指定すると意外と素直になってくれます。


!/bin/sh
for file in *.{avi,mp4,flv};
do
echo change ${file}
ffmpeg -y -i "${file}" -threads 4 -vcodec libx264 -vpre psp21 -s 480x270 -aspect 16:9 -r 30000/1001 -acodec libfaac -ar 44100 -ab 192k -ac 2 -map 0:0 -map 0:1 -f psp "${file}.MP4"
ffmpeg -y -i "${file}" -f image2 -ss 100 -vframes 1 -s 160x120 -an "${file}.THM"
done


こんな感じで3番組くらい同時にエンコって見るとイイ感じにCPU使ってくれたりします。

まぁ、、、そもそもCore i5にしたんだから、ハードエンコもできるんで、そのほうがめちゃくちゃ早いんですがね。
この辺は、また今度やってみます。
タグ:ffmpeg Linux
posted by MCのひとたち at 00:29| Comment(0) | TrackBack(0) | ソフトウエア

2011年11月15日

PT2X2 買ってみた

自分のブログにあげようとしましたが、上げてOKって了解取ったのでとりあえずここにあげてみます。
マシンネタはいろいろありますがなかなか更新できず。。

ちょっと前噂になってたPT2X2
111008_2209~02.jpg

勢いで買ってみました。

もってるPT2と並べてみる。
111008_2210~02.jpg
111008_2210~01.jpg

さすが、色しか違わない。

Linux(Fedora 16)で起動すると、、
# ls /dev/pt*

/dev/pt2video0
/dev/pt2video1
/dev/pt2video2
/dev/pt2video3
/dev/pt2video4
/dev/pt2video5
/dev/pt2video6
/dev/pt2video7

ドライバレベルでは認識するのか!!

まぁ、再生はできませんでしたがね。
(デコーダ周りのような予感。recording... までは出たんで)

とりあえず今度、PT2X2一枚ざしで、Windowsでやってみます。
いろいろ書きたいことはありますが、また次の機会に。。
タグ:Linux PT2 PT2X2
posted by MCのひとたち at 20:37| Comment(0) | TrackBack(0) | 雑談

TACOWASA

ちゃんじゃおいしい

lento_20111028233213.jpg

たこわさやばい

lento_20111028233155.jpg

あんばらだいすき!


説明しよう!!あんばらとは!!
会社帰りに週2〜4、調子がいい時は5回も通ってしまう居酒屋なのだ。
エムキューブ社員の栄養補給には欠かせない場所になっているぞ!
その中でもたこわさとチャンジャと塩辛はマストアイテムだ、
食べたら明日も仕事が頑張れるしラスボスとか倒せると思うぞ!

posted by MCのひとたち at 20:18| Comment(0) | TrackBack(0) | 日記