まとめindex
最新のトピック
KEYWORDS
Ivy Bridgeで動画エンコード2
2012/04/30
前記事はこちらIvy Bridgeで動画エンコード1
さて、Ivy Bridgeでの動画エンコードの続きです。
CPUコアの働き具合を見るために、i7zを入れてみました。実行してみると・・・
Current Frequency 3392.00 MHz [99.76 x 34.00] (Max of below)
Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp
Core 1 [0]: 3392.00 (34.00x) 95.5 2.53 1 1 62
Core 2 [1]: 3392.00 (34.00x) 90.9 7.06 1 1 64
Core 3 [2]: 3392.00 (34.00x) 91.6 6.39 1 1 62
Core 4 [3]: 3392.00 (34.00x) 93.7 4.3 1 1 61
ターボブーストしてない!!Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp
Core 1 [0]: 3392.00 (34.00x) 95.5 2.53 1 1 62
Core 2 [1]: 3392.00 (34.00x) 90.9 7.06 1 1 64
Core 3 [2]: 3392.00 (34.00x) 91.6 6.39 1 1 62
Core 4 [3]: 3392.00 (34.00x) 93.7 4.3 1 1 61
というわけで、以下コマンド実行(あらかじめ、カーネルの設定はしてあります)
# modprobe acpi-cpufreq
#
# cpufreq-set -c 0 --min 1.60GHz --max 3.90GHz
# cpufreq-set -c 1 --min 1.60GHz --max 3.90GHz
# cpufreq-set -c 2 --min 1.60GHz --max 3.90GHz
# cpufreq-set -c 3 --min 1.60GHz --max 3.90GHz
これで無事にターボブーストするようになったようです。
#
# cpufreq-set -c 0 --min 1.60GHz --max 3.90GHz
# cpufreq-set -c 1 --min 1.60GHz --max 3.90GHz
# cpufreq-set -c 2 --min 1.60GHz --max 3.90GHz
# cpufreq-set -c 3 --min 1.60GHz --max 3.90GHz
Current Frequency 3700.87 MHz [99.76 x 37.10] (Max of below)
Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp
Core 1 [0]: 3700.87 (37.10x) 87.9 2.06 1 1 66
Core 2 [1]: 3699.57 (37.08x) 87.5 1.15 1 2.41 69
Core 3 [2]: 3698.83 (37.08x) 84.8 3.38 1 3.12 67
Core 4 [3]: 3699.25 (37.08x) 84.3 4.01 1 3.08 65
ただ、見てわかるように、3.7GHz付近までしか上がってくれません。これはlibx264の特性のようで、libfaacのエンコードをする時には、3.9GHzまでちゃんと上がってくれます。というわけで、再測定してみた結果は・・・
CPU | オプション | エンコード時間 |
---|---|---|
i7 3770 | -threads 8 | 3:32 |
i7 3770 | -threads 6 | 3:22 |
i7 3770 | -threads 4 | 3:21 |
i7 3770 | -threads 2 | 3:28 |
i7 3770 | -threads 0 | 3:21 |
一番早かった「-threads 4」のエンコードシェルは以下の通り。
#!/bin/sh
date >> log4.txt
# 音声の抽出(最初2秒は不安定なので捨てる)
/usr/local/bin/ffmpeg -y -threads 4 -i test_10min.ts -ss 00:00:02:000 -map 0:1 -vn -acodec copy voice_tmp4.aac
# 映像のエンコード(最初2秒は不安定なので捨てる)
/usr/local/bin/ffmpeg -y -threads 4 -i test_10min.ts -ss 00:00:02:000 -map 0:0 -an -vcodec libx264 -aspect 16:9 -s 960x540 -r 29.97 \
-b:v 1000k -maxrate 4000k -bufsize 4000k -deinterlace -vsync 1 -fpre /usr/local/share/ffmpeg/libx264-hq.ffpreset \
-qmax 32 -qmin 10 \
-fpre /usr/local/share/ffmpeg/libx264-ipod640.ffpreset video_done4.mp4
# 音声を一度mp4コンテナへ
/usr/local/bin/MP4Box -add voice_tmp4.aac voice_tmp4.mp4
# wavへデコード
/usr/local/bin/neroAacDec -if voice_tmp4.mp4 -of voice_tmp4.wav
# AACへエンコード
/usr/local/bin/ffmpeg -async 1000 -y -threads 4 -i voice_tmp4.wav -vn -ss 00:00:00:000 -acodec libfaac -strict experimental -ac 2 -ar 48000 -ab 192k voice_done4.aac
# mp4コンテナへ格納
/usr/local/bin/MP4Box -add video_done4.mp4 -add voice_done4.aac -new all_done4.mp4
date >> log4.txt
date >> log4.txt
# 音声の抽出(最初2秒は不安定なので捨てる)
/usr/local/bin/ffmpeg -y -threads 4 -i test_10min.ts -ss 00:00:02:000 -map 0:1 -vn -acodec copy voice_tmp4.aac
# 映像のエンコード(最初2秒は不安定なので捨てる)
/usr/local/bin/ffmpeg -y -threads 4 -i test_10min.ts -ss 00:00:02:000 -map 0:0 -an -vcodec libx264 -aspect 16:9 -s 960x540 -r 29.97 \
-b:v 1000k -maxrate 4000k -bufsize 4000k -deinterlace -vsync 1 -fpre /usr/local/share/ffmpeg/libx264-hq.ffpreset \
-qmax 32 -qmin 10 \
-fpre /usr/local/share/ffmpeg/libx264-ipod640.ffpreset video_done4.mp4
# 音声を一度mp4コンテナへ
/usr/local/bin/MP4Box -add voice_tmp4.aac voice_tmp4.mp4
# wavへデコード
/usr/local/bin/neroAacDec -if voice_tmp4.mp4 -of voice_tmp4.wav
# AACへエンコード
/usr/local/bin/ffmpeg -async 1000 -y -threads 4 -i voice_tmp4.wav -vn -ss 00:00:00:000 -acodec libfaac -strict experimental -ac 2 -ar 48000 -ab 192k voice_done4.aac
# mp4コンテナへ格納
/usr/local/bin/MP4Box -add video_done4.mp4 -add voice_done4.aac -new all_done4.mp4
date >> log4.txt
ツイート