HTML5 player が実行されているかどうかを示すコマンドラインまたはscriptを見つけたいブラウザ(Firefoxまたはクロム)。
たとえば、Flashプレーヤーがブラウザで実行されているかどうかを確認するには、次のコマンドを使用します。
pgrep -lfc ".*((c|C)hrome|chromium|firefox|).*flashp.*"
HTML5のサポートは通常ブラウザに直接組み込まれているのに対し、Adobe Flashはプラグインであるため、これがどのように実現可能かはわかりません。 「chrome:plugins」ページを参照すると、Chromeでプラグインとは何かを確認できます。
たとえば、私のChromeブラウザからAdobeプラグインを見ることができます。
一方、HTML5には対応するプラグインがないため、このタイプのコンテンツを処理しているときに、プロセスがChromeからフォークされることはありません。
この質問は、コマンドラインを使用して必ずしも解決できるとは限りません(やりたいようです)。フォークは発生せず、プレーヤーはこの正確なWebページを処理するプロセス内で実行されるため、ps
をチェックできません。
ただし、このソリューションには、Webサイトのソースコードを使用してアクセスできます。次の解決策が機能する可能性があります。
$ curl http://example.com/ | grep '<video'
Webサイトはスクリプトを使用してプレーヤーを配置している可能性があり、FirebugまたはWebKit Inspectorを使用してライブWebサイトコードにアクセスし、そこでvideo
タグを検索する必要があることに注意してください。
また、YouTubeの場合、代替ソリューションはソースコードで"html5": true
を探しますが、YouTubeのHTML5は認証を必要とし、これはcurl
では困難です。
求められていることを直接達成するわけではありませんが、音の検出と組み合わせて、「wmctrl -l」のパイプで潜在的なHTML5/flashプレーヤーのサイト名をgrepすることで、おそらく同じ効果(実際には範囲が広い)の何かを達成できます。 。
if wmctrl -l | grep -i "youtube\|vimeo\|etc" && \
grep RUNNING /proc/asound/card*/pcm*/sub*/status ; then
echo "some media-site is possibly playing something.
At least the OS is playing something and some video
site is on the top tab on some browser" ;
else
echo "there may well be some HTML video going on
in some browser, but it's either not on the top tab
or not playing audio, so..."
fi