読者です 読者をやめる 読者になる 読者になる

k_piの雑記帳

個人的に困った点と、その解決法などをつらつら書き連ねた備忘録を兼ねたブログ

recdvbをいじってみた+いじったやつを公開してみた

【動機】

前に書いたPX-S1UDとRaspberryPiを用いて、家中どこでもテレビ(ワンセグ)を実現する。で述べたが、オリジナルのrecdvbではHTTPレスポンスヘッダのContent-Typeがapplication/octet-streamになっているので、Androidスマホ等からアクセスしたときにIntentが働かない。
recdvbから流れているストリーム自体はMPEG2-TSのまんまなので、AndroidiPhone用のアプリが必要というよりもrecdvb側をいじればいいんだろうということでやってみることにした。

【変更点】

recdvbのContent-Typeは「recpt1.c」内に記述されているので、そこをいじってやってb25有効時とワンセグ試聴時はContent-Typeを「video/mpeg」にしてやった。
数行いじっただけなので、具体的な変更点は後記のgithubのcommitを見てもらえばわかるはず。

続きを読む

FFmpegをWindows上でビルドする

【使用ツール】

【動機】

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.xmlffmpegのオプションが書かれているし、
%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を利用してカメラ向けエンコーダーを利用するのが主流のようだ。

【変換の下準備】

続きを読む