View Code? Open in Web Editor
NEW
This project forked from alalf /scff-directshow-filter
"ScreenCapture for FFmpeg" DirectShow Filter
License: GNU Lesser General Public License v3.0
C# 23.37%
C++ 72.33%
C 2.64%
Objective-C 0.13%
Python 0.98%
Batchfile 0.55%
scff-directshow-filter's Introduction
SCFF directShow FilterはWindows用スクリーンキャプチャプログラム(DirectShowフィルタ)です。
ffmpegやWindows Media Encoderの映像入力として使われることを想定しています。
リンク:
v0.3.0-alpha.3インストール前の注意事項
v0.3.0-alpha.3(2013/09/12版)から.ax/.dllファイルの置き場所が変わりました。
旧版のuninstall*.batを実行/全てのファイルを削除したあと、最新版をインストールしてください。
Windows 7 SP1
画面の色数: 32bit True Color
以下のランタイムをインストールしてください
install.batを実行してください
重要!
インストール後にscff_dsf_Win32/x64.axを移動させた場合は再度install.batを実行してください。
vcredist_x86/x64をインストールしていない場合、LoadLibrary("XXX") failed.というエラーが表示されます。
(install.batでインストールできない場合) 以下の手順で手動インストールしてください:
install_regsvr.batをエクスプローラ上で右クリック>管理者として実行
もしくは管理者として実行したコマンドプロンプトからbatファイルを実行してください
キャプチャソフトで「SCFF DirectShow Filter」を選択します。
重要!
SCFF DirectShow Filterは取り込みサイズとフレームレートは
出力サイズに自動的に合わせられます。
各種エンコーダで、まずは出力サイズ、フレームレートを設定してください。
エンコードを開始し、ロゴが**に表示されているかプレビューなどで確認してください。
SCFF.GUI.exeを実行してください。
左上のプロセスメニューから目的のプロセスを選択し、
取り込み設定後、Applyボタンを押してください。
(Applyボタン横のAutoチェックボックスを押すと、
一部設定が変更後自動でApplyされます)
SCFF.GUI.exe起動中にコマンドプロンプトからSCFF.GUI.exeを操作可能です。
SCFF.GUI.exe (PROFILE_PATH) [[/p (PID)|/pa] [/s|/a]]
/p (PID): プロファイルの書き込み先のプロセスを選択
/pa: /sおよび/aオプションを全てのプロセスを対象にする。プロセスの選択は保持される
/s: スプラッシュ画面を表示(Splashボタンを同じ動作)
/a: プロファイルを適用(Applyボタンと同じ動作)
後はいろいろ触って覚えてください。
エンコーダおよびGUIクライアント(SCFF.GUI.exe)が実行されていないことを確認して下さい。
確認後、ファイルを上書きしてください。
エンコーダおよびGUIクライアント(SCFF.GUI.exe)が実行されていないことを確認して下さい。
uninstall.batを実行してください。
(install_regsvr.batでインストールした場合) 以下の手順で手動アンインストールしてください:
uninstall_regsvr.batをエクスプローラ上で右クリック>管理者として実行
もしくは管理者として実行したコマンドプロンプトからbatファイルを実行してください
フォルダ・ファイルを削除してください。
重要!
取り込み時に問題が発生すると、強制的にロゴが表示されます。
たいていの場合はGUIクライアントで設定を変えてApplyしなおすと直ります。
現在判明している問題として、大きな取り込み領域(1920x1050)を
32x32程度まで小さく縮小しようとすると取り込みに失敗します。
何度Applyしても直らない場合は、プロセスメニューをRefreshして
エンコーダが起動しているかどうか確認してください。
それでも直らない場合はSCFF DirectShow Filterに対応していない環境の可能性があります。
Pythonに詳しい方はtools/build.pyを参照してください。下記の作業の一部を自動化できます。
Zeranoe FFmpeg builds からSharedビルド及びDevビルドを取得する
scff.slnソリューションを開き、全てのビルドが通ることを確認
Visual Studio Community 2017で確認済み
必要ならばいくつかのプロジェクト設定を書き換えること
tools/copy_ffmpeg_dll.batを実行してbinディレクトリにffmpeg付属のdllをコピー
tools/install_debug.batかtools/install_release.batを実行
各種エンコーダを起動しフィルタが認識されているかチェック
bin/Debugかbin/Releaseにあるヘルパーアプリケーションを起動し取り込み設定を行う
(scff_dsfのデバッグバージョンを利用する場合:)
プロジェクト設定からローカルWindowsデバッガーを選ぶ
コマンドにWME/KTE/FMEなどを選択すればデバッグ文字列などを見ることが出来る。
現在、SCFF DirectShow FilterはGitHub上で開発が進められています。
パッチを作成したい場合やコードを追加したい場合、まずGoogle C++スタイルガイドを一読してください。
scff_dsfにはdoxygenコメントをつけてあります
YUV420P(I420)に加えて各種ピクセルフォーマット出力が利用可能です。
YUV420P: IYUV/YV12
RGB32
[暫定対応] YUV422: UYVY/YUY2
レイアウト機能、Keep Aspect Ratioなどの設定が使えません
サンプル設定がtools/test_ffmpeg.batにあります。
"real-time buffer XXX% full! frame dropped!"が表示された場合、フレームドロップが発生しています。
出力先がストリーミングサイトの場合、混み合っている時間帯に起きやすいようです。
"-rtbufsize=100MB"オプションを追加すると改善される場合があります。
-iオプションの前に-rオプションを指定してFPSを指定した場合、処理落ちなどでフレームドロップしてもタイムスタンプ(pts)が補正されず音ずれが発生します。
-rオプションの代わりにdshowデバイスのオプション(-f dshow -framerate)のみでFPSを指定してみてください。
例: -f dshow -video_size 640x360 -framerate 24 -pixel_format yuv420p -i video="SCFF DirectShow Filter" ...
xSplitと併用する場合、ffmpegの一部ライブラリが干渉することがあります。
SplitMediaLabs\XSplit\avutil-51.dllをSCFF付属のavutil-*.dllと置き換えるとよい、という報告がありました。
Windows Media Encoder(WME)
WMEのノンインターレース化処理の利用は非推奨です。
アマレコやpecatvのデインタレース機能を利用することをおすすめします。
KoToEncoderのプレビュー機能をVideoRendererからVideo Mixing Renderer 9への切り替えを推奨します
Video Rendererを利用しているとSCFFの出力がRGB32(RGB0)に固定されます
Video Mixing Renderer 9が利用できない場合は、VMR-7を利用するかプレビュー機能を完全に停止してください
KoToEncoderのプレビュー機能が停止する問題
出力サイズを設定したあとKTEを再起動すればプレビューが表示されるようになります
出力サイズを640x360から変更するにはプログラムの改変が必要です
例: scff_dsf/base/constants.ccの{640, 360}を{960, 540}に変更
ピクセルフォーマット出力をYUV422からYUV420Pに変更するには、ツール>オプション>互換性のリストから以下の項目以外 を無効化してください:
i420 VFE デコーダ
iyuv VFW デコーダ
最新のWindows OSやExpression Encoder付属のqasf.dll(DirectShow ASF Support)の方が画質が良いそうです(thx cavelis!)
WME/KTEのみを利用する場合でもExpression Encoderのインストールを推奨します
アマレコ/PeCaTVなどのプレビュー機能付きキャプチャソフトとの併用
キャプチャソフトの入力をRGB32(RGB0)に設定してください。
I420だとAVI Decompressorをプレビューに利用するため、パフォーマンスがかなり落ちるとの報告がありました。
DirectShow base classes - efines class hierarchy for streams architecture.
Copyright (c) 1992-2001 Microsoft Corporation. All rights reserved.
ffmpegプロジェクト(http://ffmpeg.org )
利用しているLGPLライブラリ:
libswscale:
a library performing highly optimized image scaling and
color space/pixel format conversion operations.
libavutil:
a library containing functions for simplifying programming,
including random number generators, data structures, mathematics routines,
core multimedia utilities, and much more.
利用しているLGPLライセンスのソースコード
libavutil/colorspace.h
libavfilter/drawutils.c
libavfilter/formats.c
libavfilter/drawutils.h
libavfilter/formats.h
libavfilter/all_channel_layouts.inc
SCFF DirectShow Filterは"フリーソフトウェア"です。
作者は本ソフトウェアに関する一切の義務(サポート、恒久的アップデート)を持ちません。
また、本ソフトウェアの使用により生じた直接的、間接的損害に一切の責任を持ちません。
本ソフトウェアの利用についてはLICENSE(LGPLv.3の詳細)も参照してください。
scff-directshow-filter's People
Contributors
Watchers