メインのUIプロセスに画像データを提供するバックグラウンドプロセスとしてffplayを実行しています。SDL_VIDEODRIVER = dummy
SDLウィンドウに表示されるffplayビデオを抑制するために「」を設定しました。
問題は、ビデオ出力ウィンドウが表示されていない場合でも、ffplayプロセスがアプリケーションウィンドウ(ドック、CMD + TABエントリなど)として表示されることです。どうすればそれを回避できますか?
このオプション-nodisp
は私にとってはうまく機能しました(と一緒に-autoexit
)。
Ubuntu 18.04、ffmpeg 3.4.6でテスト済み:
ffplay -f lavfi -i "sine=frequency=1000:duration=5" -autoexit -nodisp
ドックエントリはSDLMain.mによって追加されていましたが、Macで再生するにはコンパイルする必要があります。ffplay
SDLMain.mの次の行にコメントした後、ffplayはウィンドウのないプロセスとして実行されています。
//#ifdef SDL_USE_CPS
// {
// CPSProcessSerNum PSN;
// /* Tell the dock about us */
// if (!CPSGetCurrentProcess(&PSN))
// if (!CPSEnableForegroundOperation(&PSN,0x03,0x3C,0x2C,0x1103))
// if (!CPSSetFrontProcess(&PSN))
// [NSApplication sharedApplication];
// }
//#endif /* SDL_USE_CPS */
/* Set up the menubar */
//[NSApp setMainMenu:[[NSMenu alloc] init]];
//setApplicationMenu();
//setupWindowMenu();
編集他のプラットフォームではSDLMain.m
ラッパーが必要ないため、これはMacにのみ影響しますint main()