(Linux) savfsource

概要
VapourSynth 用の映像読み込みプラグイン。
ffmpeg の libavformat 等のライブラリを使って、余分な処理はせず、シンプルにフレームを読み込みます。

ffms2 (ver 2.40 時点) で、WebM (VP9) の映像が正しく読み込めなかったので作りました。

ffmpeg が読み込める動画は大体読み込めますが、フォーマット変換などの処理はしないので、ffms2 でうまく読み込めない動画で、プログレッシブかつ YUV フォーマットの場合のみ使ってください。

  • 入力から読み込んだイメージをそのまま渡します。
  • YUV フォーマットのみ対応 (RGB は読み込めません)。
  • 可変フレームレート等は考慮しません。

MP4 (H.264)、MKV (H.264)、WebM (VP9) で問題ないのを確認済み。
ソースコード
>> https://gitlab.com/azelpg/savfsource

言語C
ライセンスMIT
動作環境- Linux ほか Unix 系 OS
- VapourSynth R56 以降

コンパイル方法などについては、ReadMe ファイルをご覧ください。
使い方
デフォルトで、/usr/local/lib/vapoursynth にインストールされます。
この場合、プラグインは自動で読み込まれないので、スクリプト内で手動で読み込んでください。

読み込み時にフォーマット変換はできないので、読み込んだ後にフォーマットを変換したい場合は、リサイズ関数を使ってください。

import vapoursynth as vs

core = vs.core

core.std.LoadPlugin("/usr/local/lib/vapoursynth/libsavfsource.so")

# 最初の映像トラックを読み込む
clip = core.savf.Source("src.mp4")

# 2番目の映像トラックを読み込む
#clip = core.savf.Source("src.mp4", track=2)

# フォーマットを変換する
#clip = core.resize.Point(clip,format=vs.YUV444P8)

clip.set_output()