ニコニコ動画やニコニコ生放送のコメントを映像の上にオーバーレイ表示するプラグイン。アンケートの表示は対応予定。ue shita big smallなどのコマンドは未対応。ffmpeg は--enable-avisynth
で avisynth に対応し、--enable-vapoursynth
で vapoursynth に対応している。avisynth は多くの配布バイナリで対応しているが、vapoursynth の対応バイナリはおそらく配布していない。
hetima/AviSynthNicoComment: ニコ生のコメントを表示する AviSynth プラグインです。
AviUtl にもコメントを流すプラグインがある。
【AviUtl】ニコ生のコメントを読み込ませるプラグイン:人生プレイ裏話「今回でクリアします!」 – ブロマガ : archive.org
ニコニココメント読込.zip ダウンロードページ – FC2 WIKI(ウィキ) 無料WIKIレンタル
avisynth の利用環境をそろえる
AviSynthPlus 本体のダウンロード。Assets から、インストーラーか、filesonlyを使う。
Releases · AviSynth/AviSynthPlus
filesonly を使うなら「2019 用 Visual C++ 再頒布可能パッケージ」をインストールして再起動する。通常は「x64: vc_redist.x64.exe」をダウンロード。
最新のサポートされる Visual C++ のダウンロード
入力プラグイン L-SMASH-Works をダウンロード。
https://github.com/HolyWu/L-SMASH-Works/releases:レポジトリが消滅
開発が止まっているので続いているの。
Forks · VFR-maniac/L-SMASH-Works · GitHub
GitHub – AkarinVS/L-SMASH-Works
GitHub – Mr-Ojii/L-SMASH-Works
コメント表示して再生する
ffmpeg.exe、AviSynth.dll、LSMASHSource.dll、movie.mp4、comment.xml を同じ場所において、input.avs を例に以下のように記述する。
LoadPlugin("LSMASHSource.dll") LoadPlugin("AviSynthNicoComment.dll") videoPath = "movie.mp4" commentPath = "comment.xml" src = LSMASHVideoSource(videoPath) video = AudioDub(src, LSMASHAudioSource(videoPath)) comment = NicoComment(video, file=commentPath, row=48, shift=0) Overlay(video, comment, mask=comment.ShowAlpha("rgb"))
ファイルは H.264/AAC の MP4 を入力する。ニコニコ生放送のデータは TS ファイルなので MP4 に入れ替える。
ffmpeg -i input.ts -c copy movie.mp4
再生コマンド。
ffplay -i input.avs
ffmpeg のフィルタで倍速再生する。
ffplay -i input.avs -vf setpts=(PTS-STARTPTS)/2 -af atempo=2
倍速再生するなら。setpts、atempo
フィルタなどを使う。
映像と音声の pts を扱う setpts, asetpts
映像だけ AviSynth で読み込み、音声はコピーして映像を libx264 でエンコードする。
LoadPlugin("LSMASHSource.dll") LoadPlugin("AviSynthNicoComment.dll") videoPath = "movie.mp4" commentPath = "comment.xml" video = LSMASHVideoSource(videoPath) comment = NicoComment(video, file=commentPath, row=48, shift=0) Overlay(video, comment, mask=comment.ShowAlpha("rgb"))
ffmpeg -i input.avs -i movie.mp4 -map 0:v -map 1:a -c:v libx264 -c:a copy output.mp4
普通に映像と音声を読み込む。
LoadPlugin("LSMASHSource.dll") videoPath = "movie.mp4" src = LSMASHVideoSource(videoPath) AudioDub(src, LSMASHAudioSource(videoPath))