recording

A collection of 2 posts

tech

破損した動画ファイルを高速に検出する

以前の記事で書いたように、自宅のサーバー上で録画環境を構築している。このサーバーでは、番組の録画が完了すると、録画した TS ファイルを h.264 の MP4 ファイルにエンコードして別のディレクトリに保存するようなスクリプトを動かしている。元の TS ファイルもそのまま保持していたのだが、最近ストレージ容量が厳しくなってきたので、エンコード済みの TS ファイルを削除しようと思い立った。 問題は、エンコードが正しく終了せず破損した MP4 ファイルがいくつか存在することだ。これらのファイルについては元の TS ファイルを残しておきたい。そこで、大量のファイルの中から破損したファイルを高速に検出する方法を調べた。 調べた結果、以下のようにするのが良さそうだ。(ffprobe コマンドは ffmpeg をインストールするとインストールされる) $ ffprobe -v error -f lavfi movie="/path/to/file.

  • mecab
    mecab
docker

VAAPIとDockerでDebianでもQSVを使ったh.264エンコードを行う

Debian上でChinachuを使った録画サーバを運用しているが(構築する記事は以前書いた)、これまでエンコードは普通にCPUでやっていて、そこそこ時間がかかっていた。 最近のIntel CPUに搭載されているハードウェアエンコーダであるところのQuick Sync Video (QSV) を使うとかなり速くなるというのは知っていたものの、Linux上ではIntel Media Server Studio (MSS) の導入が必要だと思いこんでいた。これが曲者で、CentOSじゃないとダメだったりカーネルにパッチ当てないといけなかったりでつらそうだし[1]で、ホストはできるだけきれいに保ちたかったので諦めていた。VM作って行おうにも、CPUがVT-dに対応していることが必要[2]で、Haswell世代のCore i3を使っているのでダメだった[3]。 ところが、最近Video Acceleration API (VAAPI) の存在を知った。これはMSSとは異なりオープンソースで開発されているハードウェアアクセラレーション用のAPIであり、カーネルにパッチを当てなくても利用することができる[1:1]。つまりDockerでコンテナに閉じ込めてきれいに使うことができるわけである。探してみると、既にVAAPI対応FFmpegを利用するためのDockerfileを作っている方がいらっしゃった(https://github.com/

  • mecab
    mecab