免責事項:これは実際の質問ではなく、「知識を共有する、Q&Aスタイル」です
だから、Raspberry PiでXbmcを実行していますが、実際にそれで何ができるのか、何ができないのかを理解するのに苦労しています。
RPiはH.264でエンコードされたビデオを再生できますが、x264でエンコードされたビデオしか見つけることができません。それも機能しますか?もしそうなら、なぜいくつかのファイルがおそらく動作しないのですか?
免責事項:これは実際の質問ではなく、「知識を共有する、Q&Aスタイル」です
だから、Raspberry PiでXbmcを実行していますが、実際にそれで何ができるのか、何ができないのかを理解するのに苦労しています。
RPiはH.264でエンコードされたビデオを再生できますが、x264でエンコードされたビデオしか見つけることができません。それも機能しますか?もしそうなら、なぜいくつかのファイルがおそらく動作しないのですか?
回答:
H.264(ドット付き)が実際に何であるかについて多くの誤解があるようです。だから、ウィキペディアから引用:
H.264 / MPEG-4パート10またはAVC(Advanced Video Coding)とされ、標準のビデオ圧縮のための、そして現在最も一般的に使用されるフォーマットの一つです[...]
ここで拡張する重要な部分は、それが唯一の標準であるということです。つまり、ビデオは実際にはH.264でエンコードされているのではなく、H.264標準を満たすコーデックでエンコードされています。最も一般的なものの1つはx264(小文字のx、ドットなし)です。
x264は、ビデオストリームをH.264 / MPEG-4 AVC形式にエンコードするためのフリーソフトウェアライブラリです。
[...]
x264は、他のH.264エンコーダーと比較して多数の機能を実装しています。
したがって、H.264は一種のインターフェースであり、x264はそのインターフェースの実装(実際の機能を備えた)です。
したがって、Piはx264でエンコードされたファイルを正常に再生します。
それでは、なぜx264でエンコードされたファイルがスムーズに再生されず、4〜6秒ごとに停止するのですか(GPU-Ramの量に応じて)。
ほとんどの場合、それは音です。x264はHDビデオファイルのエンコーダーであるため、これらのファイルのほとんどにはDTSコーデックを使用するデジタル高品質サウンドトラックが付属しています。
Piは(現時点では)DTSトラックをハードウェアでデコードすることができず、CPUは十分に強力ではありません。これについては、検討する価値がある公式フォーラムで議論されています。
これがあなたに当てはまるかどうかを調べるには、mediainfo
-tool を使用できます(インストールする必要があります。パッケージ名はディストリビューションによって異なります)。
[tv@raspberry]$ mediainfo some_random_movie.mkv
# Shortened output!
Audio #2
ID : 3
Format : DTS
Format/Info : Digital Theater Systems
Codec ID : A_DTS
次の2つのオプションがあります。
レシーバー(HDMIケーブルを接続したもの)の能力を確認するには、tvservice
-toolを使用します(PATHにないため、完全なパスが必要です)。
[tv@raspberry ~]$ /opt/vc/bin/tvservice -a
PCM supported: Max channels: 2, Max samplerate: 48kHz, Max samplesize 24 bits.
AC3 supported: Max channels: 6, Max samplerate: 48kHz, Max rate 640 kb/s.
ご覧のとおり、私の現在の受信機はPCMとAC3(DTSではなく)をデコードできます。
この問題に対する私の解決策は、DTSであるオーディオトラックをAC3に変換することです。これは、すべてのオーディオストリームinfile.mkv
をAC3に変換し、ビデオには触れない小さなワンライナーです。
ffmpeg -i infile.mkv -map 0 -codec:v copy -codec:s copy -codec:a ac3 outfile.mkv
avconv -i infile.mkv -map 0 -vcodec copy -acodec ac3 -ab 256k outfile.mkv
注:上記のコマンドは、結果のAC3エンコードオーディオストリームのビットレートも設定します(これは必要なようです)。256kbpsは適度に優れていますが(ほとんどのDVDは192kbpsを使用しています)、それを増減することができます。
幸いなことに、これには約5分しかかかりません(もちろん、ハードウェアによって異なります)。ちょっとしたボーナスとして、ファイルが小さくなり、オーディオマニアでない場合、違いは聞こえません。
それでも、1080p FullHDムービーが途切れ、画面が音なしで数秒間黒くなりますが、ビデオの再生は継続しているようです。ムービーは、AC3トラックのあるMKVコンテナでエンコードされたH.264です。何が問題ですか?
ほとんどの場合、ムービーファイルには何も問題はありませんが、Xbmc設定には問題があります。私の場合、問題はXbmcの「リフレッシュレート」でした。これはデフォルトで60Hzに設定されています。720pおよびその他の小さなビデオファイルの場合、これはPiの問題ではないようですが、1080pファイルでは上記の問題が発生します。
下げリフレッシュレート 60Hzのより少ないものにする(少なくとも24Hzのは、作品のために十分です)。ここには2つのオプションがあります。
System -> Settings -> System -> Video output -> Refresh rate
System -> Settings -> Video -> Playback -> Adjust display refresh rate to match video
リフレッシュレートを下げた後、1080pムービーも正常に再生されるはずです。
sudo apt-get install ffmpeg
。RPIでこれを試しましたか?それはうまく機能しますか?
ffmpeg
は、deめられません。avconv
フォークです。