(続)RaspberryPiでPX-BCUDを利用してBS/CSを受信する。
【2017/07/30追記】
2017/06/21のイメージから、PX-BCUDに対応したカーネルに更新されており、以下の手順を踏まなくてもよくなった。
よかった、楽になった・・・
【動機】
以前の記事でRaspberryPi model BとPX-BCUDを用いてBS/CSを受信しようと考えていたが、スペック不足で正常に受信できなかった。
そこで、今回はRaspberryPi 3を用いてBS/CSを受信してみることにする。
【手順】
PX-BCUDのドライバはまだ本家カーネルに取り込まれていないので、ここでも自力でカーネルをコンパイルする。
初代RaspberryPiとRaspberryPi 3ではコンパイル用のオプションが少々異なるところで躓いたが、以下の通りにやればOKだった。
RaspberryPiでPX-BCUDを利用してBS/CSを受信する。
【2017/07/30追記】
2017/06/21のイメージから、PX-BCUDに対応したカーネルに更新されており、以下の手順を踏まなくてもよくなった。
よかった、楽になった・・・
【追記 (2016/04/23)】
RaspberryPi 3を使えば録画できました。
(続)RaspberryPiでPX-BCUDを利用してBS/CSを受信する。 - k_piの雑記帳
【動機】
予てから、「RaspberryPiでBS/CSが受信できれば、普段無音の録画環境が手に入るのだがなぁ」と考えていたが、PX-S1UDのLinux dvbドライバやrecdvbの作者Satoshi Nagahama氏のHP(Sat's space)が復活しており、PX-BCUDのLinux dvbドライバ・BS対応版recdvbが完成しているとのこと。
この神のような方のドライバ・recdvbを使わせていただいて、RaspberryPiでBS/CSを受信してみようと考えた。
【手順】
PX-BCUDのドライバはlinux-mediaにポストされているので、特に問題なければじきにPX-S1UDと同様に本家カーネルに取り込まれるだろうが、ここでは自力でカーネルをコンパイルする。
続きを読むrecdvbをいじってみた+いじったやつを公開してみた
【動機】
前に書いたPX-S1UDとRaspberryPiを用いて、家中どこでもテレビ(ワンセグ)を実現する。で述べたが、オリジナルのrecdvbではHTTPレスポンスヘッダのContent-Typeがapplication/octet-streamになっているので、Androidスマホ等からアクセスしたときにIntentが働かない。
recdvbから流れているストリーム自体はMPEG2-TSのまんまなので、AndroidやiPhone用のアプリが必要というよりもrecdvb側をいじればいいんだろうということでやってみることにした。
【変更点】
recdvbのContent-Typeは「recpt1.c」内に記述されているので、そこをいじってやってb25有効時とワンセグ試聴時はContent-Typeを「video/mpeg」にしてやった。
数行いじっただけなので、具体的な変更点は後記のgithubのcommitを見てもらえばわかるはず。
FFmpegをWindows上でビルドする
【使用ツール】
- MinGW-w64 Toolchain
- MinGW Builds external-binary-packages (MSYS+git+...etc.)
- cmake
- FFmpeg
- nasm
- yasm
- lame
- fdk-aac
- openssl
- RTMPDump
- x264
- x265
【動機】
MP4動画をFFmpegで作成する際、aac変換を音質が良いとされているfdk-aacに任せたいがために、オレ流FFMpegビルドツールを使わせていただいてビルドを行っていたが、以下の点から自力でビルドすることにする。
- 当方のPC環境(WindowsVista 32bit)では、x265のビルド時のcmakeのオプションに「-DWINXP_SUPPORT="ON"」が指定されていないので、出来上がったffmpeg.exeが起動できない。
- オレ流FFMpegビルドツールで使用されているPolarSSLが古く、また、PolarSSLの後続であるmbed TLSでは、APIが大きく変更されRTMPDumpに適用できなくなっているようである。*1
- また、PolarSSLに上手くパッチが当たっていないせいか、FFmpeg上でhttps通信ができない。
- http通信でそのまま落としてきたシェルスクリプトを実行するというシステムがなんか怖い。
【概要】
いね氏が公開されているオレ流FFMpegビルドツールで使用されているシェルスクリプト、また、あべちん氏が公開されているお気に入りの動画を携帯で見ようの各記事を参考に以下のオレ流FFMpegビルドツールから以下の変更を加えてビルドする。
- ビルドしたFFmpegを配布することはないので、使用するライブラリをPolarSSLからOpenSSLに変更する。
- x265のビルド時のcmakeのオプションに「-DWINXP_SUPPORT="ON"」を指定してビルドする。
- ついでなので、コンパイラをgcc4.9.2(sjlj)からgcc5.2.0(dwarf)に変更する。
【ビルド手順】
続きを読むPX-S1UDとRaspberryPiを用いて、家中どこでもテレビ(ワンセグ)を実現する。
【追記(2016/03/27)】
recdvb作者HPSat's spaceが復活したのでオリジナルはこちらからどうぞ。
【追記(2016/02/14)】
Androidスマホ等からアクセスする場合、後述のnginxを使わなくともIntentが働くContent-Typeを吐くrecdvbを作成したので、手前味噌だがこちらを利用した方が負荷が少なく良いと思う。
また、オリジナルのrecdvbの公開元が閉鎖しているようなので、オリジナルのrecdvbが欲しい場合も以下の記事を参照して欲しい。
recdvbをいじってみた+いじったやつを公開してみた - k_piの雑記帳
【追記(2015/11/23)】
現在、PX-S1UDは初期型の生産が終了し、V2.0型のものが流通しているらしい。
この記事は、初期型のものを使用したものであるため、微妙な違いが出てくるかもしれない。
【動機】
本来なら家中どこでもスマホでワンセグを見たいのだが、なんだか受信状況が良くない。
ということで、せっかく来ているアンテナからの電波を用いて、家中ワンセグ配信を可能にし、スマホだけでなくノートPC・タブレットでも見れるようにしてしまおうと考えた。
しかし、市販の機器では汎用性が無いので、自作することにした。
【概要】
PX-S1UDとRaspberryPiを用いて、家庭内ネットワークでワンセグ配信する。
ここで、重要なことは、インターネットといった不特定多数に配信しないように注意しなければならないということである。
【下準備】
続きを読むffmpegでMPEG2-TSファイルをmp4に変換する
【変換元・変換先】
変換元MPEG2-TS:動画MPEG2(インターレース)・音声AAC
変換先MP4:動画H.264/AVC・音声AAC
【動機】
最近まで、FreemakeVideoConverterを使っていたのだが、Freemakeという組織があまりはっきりしないことから脱FreemakeVideoConverterを図ることにした。
調べてみると、%PROGRAMFILES%\Freemake\Freemake Video Converter\FMCommon\FreemakeCommon\Profiles\FMCommonCodecProfiles.xmlにffmpegのオプションが書かれているし、
%PROGRAMFILES%\Freemake\COM\1.1\ffmpeg.exeにはffmpegが存在している。
つまりは、FreemakeVideoConverterは内部的にはffmpegで処理しており、ffmpegに置き換えられるということなので、ffmpegへの置き換えを図る。
【概要】
今回は、Windows上で、ffmpegバージョンgit-6c91afeを利用し、MPEG2-TSファイルをmp4に変換する。
ffmpegはバージョンによって、オプションや変数の表記が違うようなのでそこらへんも書いていこうと思う。
【変換の下準備】
続きを読むRaspberry Pi (Raspbian) で、MPEG2-TSファイルをmp4に変換する際に詰まった点
【変換元・変換先】
変換元MPEG2-TS:動画MPEG2・音声AAC
変換先MP4:動画H.264/AVC・音声AAC
【Raspberry PiにおけるMPEG2-TS→mp4への変換の概要】
Raspberry PiにはGPUが搭載されており、ハードウェアアクセラレーターを利用したH.264エンコーダーと、有償ではあるがMPEG2デコーダーが利用できる。
(MPEG2デコーダーのライセンスキーは、
http://www.raspberrypi.com/mpeg-2-license-key/
にて購入可能である。)
しかし、ここで問題なのが、このエンコーダー・デコーダーはあまり汎用的でないということである。というのも、フォーラムなどを見てみると、このGPUがどうやらメディア再生とカメラモジュール向けのようなのである。
(カメラ向けであるからか、ハードウェアアクセラレーターはカメラ機能を有効にしないと機能しない。
参考:Connecting The Dots: Rasberry Piのmpeg2ハードウェアデコーダの有効化
なお、カメラ機能を有効にするにはGPUに128MB以上のメモリを割り当てる必要がある。
参照:Raspberry Piユーザーガイド 第2版 - Eben Upton, Gareth Halfacree - Google ブックス)
つまり、変換には適していないのだ。無論、今後のアップデートで変換向けのツールが出てくるかもしれないが、2015年2月現在、GStreamerを利用してカメラ向けエンコーダーを利用するのが主流のようだ。