みなさんPerfume 新コンピ アルバム注文済みでしょうか~?
知っている人は知っているんでしょうけど、
今回初めて知ってビックリしたので紹介します~。(`Д´)
??月頭にPerfume Global Compilation “LOVE THE WORLD"(初回限定盤)を2,199円で買える
と紹介したのですが、人によってはもっと安く買えるみたいです。(今月いっぱい)
現在のJoshin webオンラインショッピングモールでの価格は
会員様web特価 2,399 円 (税込) (20%off)
さらに!
200円引きのWEBクーポンが期間:8月 31日(金) 23:59
さらに!! コレとは別の
200円引きのWEBクーポンが期間:9月 2日(日)23:59
さらに!!! 今月が誕生日の人は
300円引きのWEBクーポンが使えます。
合計700円引き!!の1699円で注文できました。
今月が誕生日でない人でも1999円で買えますね。
WEBクーポンって別の種類だったら同時使用可能なんですね~知りませんでした。
Joshin webオンラインショッピングモール これから要チェックなサイトになりましたわ。(´∀`)
アスペクト比強制変更
ハードウェア支援でDVD再生
MPEG-2のハードウェア再生ができるということは
DVDもスムーズに再生できる気がします。
しかし、omxplayerはDVDを直接再生できないっぽい?(知らないだけかもですが...)
mplayerやxineなら直接再生できるんだろうけど、
ハードウェア支援を受けられず、スムーズに再生できない...
そこで困ったときのGoogle先生~何かイイのないですか~?
ハイありました。ヽ( ´ー`)ノ
libdvdread 0.9.xのサンプル?かな、play_title.c というのが使えそうです。
これとomxplayerでFIFO経由でデータのやりとりをすればうまくいきそうです。
ハードの構成は前回と同じです。

次にツールの準備~
libdvdcssは前回の記事参照~
my_dvdの引数の意味は引数無しで起動すれば出てきます。
あとは以下のように実行すれば...
スムーズに再生されました。(=´∇`=)
CPU使用率はomxplayerが30%で始まって20%前後で安定。
my_dvdが5%弱って感じでした。
作り込む気はないので、これで十分でしょう。('~')


(SSはちょっとコマンド違ってます)
でも、今だと1万円くらいでBD、DVD、YouTube、DLNA再生できるプレイヤーあるしね~
ここまでしてDVD再生する必要はないっすな(;´д`)
DVDもスムーズに再生できる気がします。
しかし、omxplayerはDVDを直接再生できないっぽい?(知らないだけかもですが...)
mplayerやxineなら直接再生できるんだろうけど、
ハードウェア支援を受けられず、スムーズに再生できない...
そこで困ったときのGoogle先生~何かイイのないですか~?
ハイありました。ヽ( ´ー`)ノ
libdvdread 0.9.xのサンプル?かな、play_title.c というのが使えそうです。
これとomxplayerでFIFO経由でデータのやりとりをすればうまくいきそうです。
ハードの構成は前回と同じです。
次にツールの準備~
libdvdcssは前回の記事参照~
sudo apt-get install libdvdread-devって感じでコンパイル。
play_title.cのDVDFinish();をコメントアウト
gcc play_title.c -o my_dvd -ldvdread
my_dvdの引数の意味は引数無しで起動すれば出てきます。
mkfifo pipeFIFO作成。
あとは以下のように実行すれば...
my_dvd /dev/dvd 1 1 1 > pipe &
omxplayer -p -o hdmi pipe
スムーズに再生されました。(=´∇`=)
CPU使用率はomxplayerが30%で始まって20%前後で安定。
my_dvdが5%弱って感じでした。
作り込む気はないので、これで十分でしょう。('~')
(SSはちょっとコマンド違ってます)
でも、今だと1万円くらいでBD、DVD、YouTube、DLNA再生できるプレイヤーあるしね~
ここまでしてDVD再生する必要はないっすな(;´д`)
ハードウェア支援MPEG-2再生
先日購入したMPEG-2のライセンスキーが届いたので
RaspberryPiでPT2のMPEG-2-TS動画の再生をしてみました。
/boot/config.txt にメールの内容を書き込んで再生~
で、結果は...画面真っ暗、音がちょっと出ました!(´_ゝ`)
これまでは omxplayer だと普通にエラーが出て終了していましたが、
今回は再生しようとしているようです。
公式フォーラムでGPUメモリがどうのこうのという情報を見かけたので
memory_splitって項目ですね。
GPUに64MB割り当てられるようにします。(デフォルトは32MBだったかな?)
そして、再起動後再生~
今度はうまくスムーズに再生されました(=´∇`=)
CPU使用率は最初80%くらいまで上がって、その後30~40%前後でした。
でも、いくつか問題ありますね。
・最初の数秒は音飛び
・最後の数秒切れてしまう(他の動画再生と同じですね。)
・地デジMPEG-2は16:9になってくれない(1440x1080そのまま表示される)
16:9にならないのだけ気になりますが、そのうちどうにかなるといいな(;´д`)

RaspberryPiでPT2のMPEG-2-TS動画の再生をしてみました。
/boot/config.txt にメールの内容を書き込んで再生~
で、結果は...画面真っ暗、音がちょっと出ました!(´_ゝ`)
これまでは omxplayer だと普通にエラーが出て終了していましたが、
今回は再生しようとしているようです。
公式フォーラムでGPUメモリがどうのこうのという情報を見かけたので
sudo raspi-configで変更します。
memory_splitって項目ですね。
GPUに64MB割り当てられるようにします。(デフォルトは32MBだったかな?)
そして、再起動後再生~
今度はうまくスムーズに再生されました(=´∇`=)
CPU使用率は最初80%くらいまで上がって、その後30~40%前後でした。
でも、いくつか問題ありますね。
・最初の数秒は音飛び
・最後の数秒切れてしまう(他の動画再生と同じですね。)
・地デジMPEG-2は16:9になってくれない(1440x1080そのまま表示される)
16:9にならないのだけ気になりますが、そのうちどうにかなるといいな(;´д`)
MPEG-2の再生が可能になる!?
現在はomxplayerだとMPEG-2の動画は再生できず、他のプレイヤーを使う必要があります。
でも、カクカクなんですよね~。
が、つい最近、RaspberryPiの公式サイトで
「New video features! MPEG-2 and VC-1 decode, H.264 encode, CEC support」
という記事が掲載されました。
http://www.raspberrypi.org/archives/1839
RaspberryPiでMPEG-2な動画を再生できるようになるかも知れません。
でもこれ、2ポンド(260円)必要...有料なんですね。(;´д`)
いまのところRaspberryPiを動画再生マシンにする気はないのですが、
ほかにネタもないので買ってみました。
VC-1もあるみたいですが、手持ちの動画にそんなのないので、とりあえず保留~。
72時間後ぐらいにライセンスキーが送られてくるようですが...
まだ、待ち状態です。(>_<)
でも、カクカクなんですよね~。
が、つい最近、RaspberryPiの公式サイトで
「New video features! MPEG-2 and VC-1 decode, H.264 encode, CEC support」
という記事が掲載されました。
http://www.raspberrypi.org/archives/1839
RaspberryPiでMPEG-2な動画を再生できるようになるかも知れません。
でもこれ、2ポンド(260円)必要...有料なんですね。(;´д`)
いまのところRaspberryPiを動画再生マシンにする気はないのですが、
ほかにネタもないので買ってみました。
VC-1もあるみたいですが、手持ちの動画にそんなのないので、とりあえず保留~。
72時間後ぐらいにライセンスキーが送られてくるようですが...
まだ、待ち状態です。(>_<)
DVD、YouTube再生
今度はDVD再生を試してみました。
結論から書くとダメダメでした。(;´д`)
構成は以下のようにしました。
内蔵DVDドライブ => SATA to USBケーブル => RaspberryPi

こんな感じで接続すると、かってに /dev/dvd が生成されます。
ほぅほぅ、今時のLinuxはWindowsっぽいんですね~
LinuxでDVD再生はいろいろ必要みたいっすね。
ちとめんどうですが、以下のようにします。
DVDはハードウェア支援が効かないようで
フレームドロップしまくりでした。
xineでも再生してみました。

h264な動画以外はまともに再生できないっぽいですな。
次にYouTubeのストリーミング再生をする方法です。
http://mugijiru.seesaa.net/article/258382587.html
を参考にしました。
YouTubeの動画のページを開いた時のアドレスのv=の値をメモっておきます。
その値を以下のようにすると

たしかYouTubeの動画って一部だけかな?h264だった気がしたので

結論から書くとダメダメでした。(;´д`)
構成は以下のようにしました。
内蔵DVDドライブ => SATA to USBケーブル => RaspberryPi
こんな感じで接続すると、かってに /dev/dvd が生成されます。
ほぅほぅ、今時のLinuxはWindowsっぽいんですね~
LinuxでDVD再生はいろいろ必要みたいっすね。
ちとめんどうですが、以下のようにします。
====== 準備 ======
sudo apt-get install subversion
sudo apt-get install automake
sudo apt-get install libtool
svn co svn://svn.videolan.org/libdvdcss/trunk libdvdcss
cd libdvdcss
./bootstrap
./configure
make
sudo make install
sudo ldconfig
====== 再生 ======
amixer cset numid=3 2
mplayer -ao alsa:noblock:device=hw=0.0 -framedrop dvd://
DVDはハードウェア支援が効かないようで
フレームドロップしまくりでした。
xineでも再生してみました。
sudo apt-get install xine-ui同じくドロップしまくり。
h264な動画以外はまともに再生できないっぽいですな。
次にYouTubeのストリーミング再生をする方法です。
http://mugijiru.seesaa.net/article/258382587.html
を参考にしました。
sudo apt-get install youtube-dl
YouTubeの動画のページを開いた時のアドレスのv=の値をメモっておきます。
http://www.youtube.com/watch?v=P2Y6XsYXhtw&feature=g-u-u
その値を以下のようにすると
mplayer -framedrop $(youtube-dl -g http://www.youtube.com/embed/P2Y6XsYXhtw)これまたカクカクで再生されます。(´_ゝ`)
たしかYouTubeの動画って一部だけかな?h264だった気がしたので
omxplayer -p -o hdmi $(youtube-dl -g http://www.youtube.com/embed/P2Y6XsYXhtw)で、後ろ2、3秒切れてるようですがスムーズに再生されました。
USB Audioを試そう
今回は音楽再生についてです。
音楽再生というとやはりMP3でしょうか。
MP3であれば動画再生でも紹介した omxplayer で再生可能です。
AVアンプなどに繋げば聞くことが出来ます。
が、音楽聞くだけなのにHDMIは使いにくいですよね~(;´д`)
そこで、
が、しかし、音割れしてます( ̄~ ̄;)
3.5mmジャックは使い物になりませんなぁ。
ってことでUSB Audioを使ってみます。
用意したのは KENWOOD RD-VH7PC


たしか2002年頃、投げ売りされていたのを秋葉原で買ったやつです。
値段は忘れましたが、持って帰るのが大変だったのを覚えてます。
omxplayerで音声出力先をUSB Audioにする方法はわかりませんでした。(>_<)
ので、ほかのプレイヤーを使いましょう。
まずはプレイヤーのインストール~
http://pc.watch.impress.co.jp/docs/column/musashino_proto/20120808_551840.html
を参考に
でもって、
3.5mmジャックは使い物にならないのでUSBの方へ切り替えます。
まずはUSB Audioが認識されているかチェック
古い機種ですが問題なく差すだけで認識されていますね。
USB Audioは「カード1のデバイス0」となっています。
ので、以下のようにコマンド入力すると...
次に比較的最新のネットワークオーディオプレイヤー、Pioneer N-50 を用意してみました。

同じように

ここで気になるのはハイレゾ音源だとどうなのか...
Pioneer N-50 は 32bit 192kHz まで対応しているようですね~
でも、そんな音源もってねーー(;´д`)
ってことで無料サンプルの 24bit 96kHz wavファイルを試してみました。
サンプルが1分と短いので詳しく検証できていませんが問題なさそうです。

さらにアップサンプリングソフトでCD音源を 24bit 88kHz にしたwavファイルを試してみました。
残念ながらこちらはプチノイズが入ってしまいます。
あと、サンプリングレートが変わると、Pioneer N-50 はうまく認識してくれないようで
2回再生してやらないと正しく認識してくれませんでした。
この時ブチブチって音するので試す方はボリューム小さめでやりましょう( ̄~ ̄;)
音楽再生というとやはりMP3でしょうか。
MP3であれば動画再生でも紹介した omxplayer で再生可能です。
omxplayer -p -o hdmi pppp.mp3とすればHDMIのほうに音楽データが流れるので、
AVアンプなどに繋げば聞くことが出来ます。
が、音楽聞くだけなのにHDMIは使いにくいですよね~(;´д`)
そこで、
omxplayer pppp.mp3とすれば3.5mmジャックのほうから音楽が流れてきます。
が、しかし、音割れしてます( ̄~ ̄;)
3.5mmジャックは使い物になりませんなぁ。
ってことでUSB Audioを使ってみます。
用意したのは KENWOOD RD-VH7PC
たしか2002年頃、投げ売りされていたのを秋葉原で買ったやつです。
値段は忘れましたが、持って帰るのが大変だったのを覚えてます。
omxplayerで音声出力先をUSB Audioにする方法はわかりませんでした。(>_<)
ので、ほかのプレイヤーを使いましょう。
まずはプレイヤーのインストール~
http://pc.watch.impress.co.jp/docs/column/musashino_proto/20120808_551840.html
を参考に
sudo apt-get install mpg321でインストール。
でもって、
mpg123 ppp.mp3とすれば3.5mmジャックのほうから音楽が流れてきます。
3.5mmジャックは使い物にならないのでUSBの方へ切り替えます。
まずはUSB Audioが認識されているかチェック
私の環境は上記のようになっています。pi@raspberrypi ~ $ aplay -l **** ハードウェアデバイス PLAYBACK のリスト **** カード 0: ALSA [bcm2835 ALSA], デバイス 0: bcm2835 ALSA [bcm2835 ALSA] サブデバイス: 8/8 サブデバイス #0: subdevice #0 サブデバイス #1: subdevice #1 サブデバイス #2: subdevice #2 サブデバイス #3: subdevice #3 サブデバイス #4: subdevice #4 サブデバイス #5: subdevice #5 サブデバイス #6: subdevice #6 サブデバイス #7: subdevice #7 カード 1: Device [Kenwood Audio Device], デバイス 0: USB Audio [USB Audio] サブデバイス: 1/1 サブデバイス #0: subdevice #0 pi@raspberrypi ~ $
古い機種ですが問題なく差すだけで認識されていますね。
USB Audioは「カード1のデバイス0」となっています。
ので、以下のようにコマンド入力すると...
mpg123 -a hw:1,0 pppp.mp3見事に鳴りました。(=´∇`=)
次に比較的最新のネットワークオーディオプレイヤー、Pioneer N-50 を用意してみました。
pi@raspberrypi ~ $ aplay -l **** ハードウェアデバイス PLAYBACK のリスト **** カード 0: ALSA [bcm2835 ALSA], デバイス 0: bcm2835 ALSA [bcm2835 ALSA] サブデバイス: 8/8 サブデバイス #0: subdevice #0 サブデバイス #1: subdevice #1 サブデバイス #2: subdevice #2 サブデバイス #3: subdevice #3 サブデバイス #4: subdevice #4 サブデバイス #5: subdevice #5 サブデバイス #6: subdevice #6 サブデバイス #7: subdevice #7 カード 1: Device [Pioneer USB Audio Device], デバイス 0: USB Audio [USB Audio] サブデバイス: 0/1 サブデバイス #0: subdevice #0 pi@raspberrypi ~ $
同じように
mpg123 -a hw:1,0 pppp.mp3で再生すると普通に鳴ってくれました。ヽ(´▽`)ノ
ここで気になるのはハイレゾ音源だとどうなのか...
pi@raspberrypi ~ $ cat /proc/asound/card1/stream0 PIONEER CORPORATION Pioneer USB Audio Device at usb-bcm2708_usb-1.2, high speed : USB Audio Playback: Status: Stop Interface 1 Altset 1 Format: S16_LE Channels: 2 Endpoint: 5 OUT (ASYNC) Rates: 44100, 48000, 88200, 96000, 192000 Data packet interval: 125 us Interface 1 Altset 2 Format: S24_3LE Channels: 2 Endpoint: 5 OUT (ASYNC) Rates: 44100, 48000, 88200, 96000, 192000 Data packet interval: 125 us Interface 1 Altset 3 Format: S32_LE Channels: 2 Endpoint: 5 OUT (ASYNC) Rates: 44100, 48000, 88200, 96000, 192000 Data packet interval: 125 us
Pioneer N-50 は 32bit 192kHz まで対応しているようですね~
でも、そんな音源もってねーー(;´д`)
ってことで無料サンプルの 24bit 96kHz wavファイルを試してみました。
aplay -B10000000 -D hw:1,0 -r 96000 LessLoss-Mephisto-Listz-II-24_bit_96_kHz.wav鳴りました。
サンプルが1分と短いので詳しく検証できていませんが問題なさそうです。
さらにアップサンプリングソフトでCD音源を 24bit 88kHz にしたwavファイルを試してみました。
残念ながらこちらはプチノイズが入ってしまいます。
あと、サンプリングレートが変わると、Pioneer N-50 はうまく認識してくれないようで
2回再生してやらないと正しく認識してくれませんでした。
この時ブチブチって音するので試す方はボリューム小さめでやりましょう( ̄~ ̄;)
omxplayerによる動画再生 その3
前前回は動画データの送信にffserverを使用しましたが、送信側がLinuxでないとダメでした。
やっぱ、Windowsでないと使いにくいですね~('~')
何かいい方法ないかとGoogle先生に聞いてみると、ffmpegはデータ出力先を標準出力に出来るそうです。
さらに各種ログメッセージも出力しないようにできるとのこと。
なんか出来そうな気がしてきました。
ただ、現在よく使うffmpegのオプションだとエンコード速度が実時間より
6fps遅いので使い物になりません。
速度優先のための値っていくつにすればいいのかわからないんですよね~(´・ω・`)
そこで、またGoogle先生に聞いて、こんな感じにしてみました。
-g 250 -qcomp 0.6 -qmin 10 -qmax 51 -subq 1 -me_range 16 -i_qfactor 0.71
これだとAMD PhenomIIX6 1090T 3.2GHzの環境で
エンコード速度50fpsくらい出てくれて、ビットレートが10Mbpsくらいになります。
以下のJavaコードをサーブレットに組み込んで試してみると...
(コア部分のみ抜粋)
String path = "D:\\bin\\";
res.setStatus(200); // resはHttpServletResponse
res.setContentType("video/mpeg");
ArrayList<String> list = new ArrayList<String>();
list.add(path + "ffmpeg.exe");
list.add("-i");
list.add("abc2.ts");
list.add("-f");
list.add("mpegts");
list.add("-acodec");
list.add("copy");
list.add("-vcodec");
list.add("libx264");
list.add("-s");
list.add("1920x1088");
list.add("-g");
list.add("250");
list.add("-qcomp");
list.add("0.6");
list.add("-qmin");
list.add("10");
list.add("-qmax");
list.add("51");
list.add("-qdiff");
list.add("4");
list.add("-subq");
list.add("1");
list.add("-me_range");
list.add("16");
list.add("-i_qfactor");
list.add("0.71");
list.add("-threads");
list.add("8");
list.add("pipe:1");
list.add("-loglevel");
list.add("quiet");
ProcessBuilder pb = new ProcessBuilder(list);
pb.directory(new File(path));
Process p = pb.start();
InputStream is = p.getInputStream();
out = res.getOutputStream();
byte[] b = new byte[2048000];
while (true) {
int n = is.read(b);
if (n < 0) {
break;
}
out.write(b, 0, n);
}

動きましたヽ(´▽`)ノ
ただし、最初の30秒ほどはたまにつっかかりますねぇ。
その後は全く問題なく再生されていました。
あとはファイル名固定の部分やRaspberryPi側のファイル選択ツールを作成すれば
ため込んだTSファイル再生できますな(=´∇`=)
おまけ
omxplayerの操作方法は
http://omxplayer.sconde.net/
のKey bindingsの項目に書いてありました。
一時停止とかもできたんですね...知りませんでした(;´д`)
やっぱ、Windowsでないと使いにくいですね~('~')
何かいい方法ないかとGoogle先生に聞いてみると、ffmpegはデータ出力先を標準出力に出来るそうです。
さらに各種ログメッセージも出力しないようにできるとのこと。
なんか出来そうな気がしてきました。
ただ、現在よく使うffmpegのオプションだとエンコード速度が実時間より
6fps遅いので使い物になりません。
速度優先のための値っていくつにすればいいのかわからないんですよね~(´・ω・`)
そこで、またGoogle先生に聞いて、こんな感じにしてみました。
-g 250 -qcomp 0.6 -qmin 10 -qmax 51 -subq 1 -me_range 16 -i_qfactor 0.71
これだとAMD PhenomIIX6 1090T 3.2GHzの環境で
エンコード速度50fpsくらい出てくれて、ビットレートが10Mbpsくらいになります。
以下のJavaコードをサーブレットに組み込んで試してみると...
(コア部分のみ抜粋)
String path = "D:\\bin\\";
res.setStatus(200); // resはHttpServletResponse
res.setContentType("video/mpeg");
ArrayList<String> list = new ArrayList<String>();
list.add(path + "ffmpeg.exe");
list.add("-i");
list.add("abc2.ts");
list.add("-f");
list.add("mpegts");
list.add("-acodec");
list.add("copy");
list.add("-vcodec");
list.add("libx264");
list.add("-s");
list.add("1920x1088");
list.add("-g");
list.add("250");
list.add("-qcomp");
list.add("0.6");
list.add("-qmin");
list.add("10");
list.add("-qmax");
list.add("51");
list.add("-qdiff");
list.add("4");
list.add("-subq");
list.add("1");
list.add("-me_range");
list.add("16");
list.add("-i_qfactor");
list.add("0.71");
list.add("-threads");
list.add("8");
list.add("pipe:1");
list.add("-loglevel");
list.add("quiet");
ProcessBuilder pb = new ProcessBuilder(list);
pb.directory(new File(path));
Process p = pb.start();
InputStream is = p.getInputStream();
out = res.getOutputStream();
byte[] b = new byte[2048000];
while (true) {
int n = is.read(b);
if (n < 0) {
break;
}
out.write(b, 0, n);
}
動きましたヽ(´▽`)ノ
ただし、最初の30秒ほどはたまにつっかかりますねぇ。
その後は全く問題なく再生されていました。
あとはファイル名固定の部分やRaspberryPi側のファイル選択ツールを作成すれば
ため込んだTSファイル再生できますな(=´∇`=)
おまけ
omxplayerの操作方法は
http://omxplayer.sconde.net/
のKey bindingsの項目に書いてありました。
一時停止とかもできたんですね...知りませんでした(;´д`)
omxplayerによる動画再生 その2
前回、動画再生で omxplayer を紹介しました。
その時、動画表示のされ方がオーバーレイ的と書いたのですが、
あれから数日して違和感というか...10年以上前のXWindowプログラミングの経験から
「あんな機能XWindowになかったよな~もしやXWindow関係なくないか!」と思って、
XWindowを立ち上げない状態で動画再生してみると...


動きよった(゜Д゜)
しかも、コマンド入力は直接RaspberryPi上でなくてもいいみたいで、
別端末のssh上から動画再生可能でした。
今回はtsファイルをエンコードして中身をh264にし、RaspberryPiのSDカードへssh SCPで
転送して再生してます。
さすがに前回の1.7Mbpsにくらべると、6~7Mbpsクラスの動画は綺麗ですね~
ついでにmp3を再生してみました。
3.5mmジャックのボリューム制御は今はできないみたいですね。
音割れしてました。
HDMI出力にして、AVアンプなどに接続すれば普通に音楽を聴くことが出来ます。
その時、動画表示のされ方がオーバーレイ的と書いたのですが、
あれから数日して違和感というか...10年以上前のXWindowプログラミングの経験から
「あんな機能XWindowになかったよな~もしやXWindow関係なくないか!」と思って、
XWindowを立ち上げない状態で動画再生してみると...
動きよった(゜Д゜)
しかも、コマンド入力は直接RaspberryPi上でなくてもいいみたいで、
別端末のssh上から動画再生可能でした。
今回はtsファイルをエンコードして中身をh264にし、RaspberryPiのSDカードへssh SCPで
転送して再生してます。
さすがに前回の1.7Mbpsにくらべると、6~7Mbpsクラスの動画は綺麗ですね~
ついでにmp3を再生してみました。
3.5mmジャックのボリューム制御は今はできないみたいですね。
音割れしてました。
HDMI出力にして、AVアンプなどに接続すれば普通に音楽を聴くことが出来ます。
omxplayerによる動画再生
Raspberry Pi の動画再生支援機能を使えるプレイヤーがあるそうです。
http://sai-lab.ddns.net/diary/10051.html
を参考に omxplayer を使ってみました。
まずはインストール。ちょっと前まで少し面倒だったようですが
今は
あとは
-pはなくても音出てました。(このオプションあったほうがいいのかはわかりません(´・ω・`)
しかし...うちの環境では動画はtsファイルがほとんどです。
RaspberryPiの再生支援はh264だけ?っぽいので、上記HPの別の記事によると
tsファイル再生はCPUふりきちゃうみたいですね。
あらかじめh264動画を作成するか...リアルタイムに変換か...
どちらもめんどくさいですが、今回はお遊びで疑似?リアルタイム変換してみますか。
とはいえ、動画関係はあんまり知識がないので作ろうにも作れない(>_<)
何かいい物ないかな~と探しているとffmpegについているffserverが使えそうです。
もちろんRaspberryPi上で動作させるには重すぎと思うので別のPCでffserver動かしましょう。
が、別PCはmacbookしかない(;´д`)
しかもffserverってUNIX系でないとffmpegに付いてないっぽいですね。
macbookにUSBメモリ差して、Ubuntuをいれてみましたが、なんか起動が遅い!
イラッとしたので、これはやめて、普通にWindowsPCのVirtualBox上で
ffserverを動作させるようにしました。
VirtualBox、Ubuntu関係は省略...('~')
Ubuntu上で
一応スムーズに再生されていますね。CPU使用率も低い。
でも、ビットレート低いせいかTSより荒いですね...
ビットレートこれ以上上げるとffserverがエラーになるんですよねぇ~
オプションの指定の仕方が悪いのか...
まぁ、見られるレベルなのでこれでいっかw

←こちらは704x480の動画です。こんな感じでかってに拡大され、
オーバーレイっぽく表示されます。
↓その時のCPU使用率はこんな感じ。


1440x1040にしてもまだCPU使用率変わらず。

1920x1072でもスムーズに再生されています。
おもいきってBDレベルのファイルをapache配下に設置してRaspberryPiから再生させてみると...
さすがにCPU振り切ってました。
でも、最初の10秒くらいはスムーズで、その後は1秒ごとにつっかかる感じでした。
??CPU使用率さがってるのは再生停止したから)
で、最終的な /etc/ffserver.conf は以下のようになりました。
http://sai-lab.ddns.net/diary/10051.html
を参考に omxplayer を使ってみました。
まずはインストール。ちょっと前まで少し面倒だったようですが
今は
sudo apt-get install omxplayerのようにインストール出来るようです。
あとは
omxplayer -p -o hdmi ファイル名とすれば動画再生してくれます。
-pはなくても音出てました。(このオプションあったほうがいいのかはわかりません(´・ω・`)
しかし...うちの環境では動画はtsファイルがほとんどです。
RaspberryPiの再生支援はh264だけ?っぽいので、上記HPの別の記事によると
tsファイル再生はCPUふりきちゃうみたいですね。
あらかじめh264動画を作成するか...リアルタイムに変換か...
どちらもめんどくさいですが、今回はお遊びで疑似?リアルタイム変換してみますか。
とはいえ、動画関係はあんまり知識がないので作ろうにも作れない(>_<)
何かいい物ないかな~と探しているとffmpegについているffserverが使えそうです。
もちろんRaspberryPi上で動作させるには重すぎと思うので別のPCでffserver動かしましょう。
が、別PCはmacbookしかない(;´д`)
しかもffserverってUNIX系でないとffmpegに付いてないっぽいですね。
macbookにUSBメモリ差して、Ubuntuをいれてみましたが、なんか起動が遅い!
イラッとしたので、これはやめて、普通にWindowsPCのVirtualBox上で
ffserverを動作させるようにしました。
VirtualBox、Ubuntu関係は省略...('~')
Ubuntu上で
ffserverでもって、RaspberryPi上で
ffmpeg -i test.ts http://127.0.0.1:8090/feed1.ffm
omxplayer -p -o hdmi http://192.168.x.x:18090/test.flv
一応スムーズに再生されていますね。CPU使用率も低い。
でも、ビットレート低いせいかTSより荒いですね...
ビットレートこれ以上上げるとffserverがエラーになるんですよねぇ~
オプションの指定の仕方が悪いのか...
まぁ、見られるレベルなのでこれでいっかw
←こちらは704x480の動画です。こんな感じでかってに拡大され、
オーバーレイっぽく表示されます。
↓その時のCPU使用率はこんな感じ。
1440x1040にしてもまだCPU使用率変わらず。
1920x1072でもスムーズに再生されています。
さすがにCPU振り切ってました。
でも、最初の10秒くらいはスムーズで、その後は1秒ごとにつっかかる感じでした。
??CPU使用率さがってるのは再生停止したから)
で、最終的な /etc/ffserver.conf は以下のようになりました。
Port 8090 BindAddress 0.0.0.0 MaxBandwidth 2000 NoDaemon <Feed feed1.ffm> File /tmp/feed1.ffm FileMaxSize 2000M </Feed> <Stream test.flv> Feed feed1.ffm Format flv VideoCodec libx264 VideoSize 1920x1072 VideoBitRate 1700 AVOptionVideo g 150 AVOptionVideo qcomp 0.7 AVOptionVideo qmin 15 AVOptionVideo qmax 51 AVOptionVideo qdiff 4 AVOptionVideo subq 6 AVOptionVideo me_range 16 AVOptionVideo i_qfactor 0.714286 AudioCodec libfaac AudioBitRate 256 AudioChannels 2 AudioSampleRate 48000 AVOptionVideo flags +global_header AVOptionAudio flags +global_header </Stream> <Stream stat.html> Format status </Stream>
登録:
投稿 (Atom)