私はMac AppStoreに公開された電子アプリを持っており、サンドボックス化されています。FfmpegがElectronサンドボックスアプリケーションで中止される
私はElectronのコンテキストでより多くのビデオフォーマットをストリーミングできるように、ビデオを即座にエンコード/デコードする新しい機能を追加しようとしています。
私はfluent-ffmpegとstatic exec of ffmpegを使用しています。
私はAppleにサンドボックスアプリケーションをアップロードしていますが、ffmpegはデフォルトで非公開APIを使用している安全なトランスポートプロトコルを使用しているため、拒否されました。 :
Your app uses or references the following non-public API(s):
'/System/Library/Frameworks/Security.framework/Versions/A/Security'
: SecIdentityCreate
よしは、多くの研究の後に、私が--disable-securetransport
フラグを使用して自分自身をffmpegのコンパイルする必要があることが表示されます。簡単に言えば、静的ビルドと同じ設定を使用して、新しいフラグを追加するだけでダウンロードできます。
私が推測すると、単純にconfigureコマンドからそのフラグを削除し、libxavs
を除き、必要なすべての依存関係をインストールするには大したを管理していない:予想通り
./configure \
--cc=/usr/bin/clang \
--prefix=/opt/ffmpeg \
--extra-version=tessus \
--enable-avisynth \
--enable-fontconfig \
--enable-gpl \
--enable-libass \
--enable-libbluray \
--enable-libfreetype \
--enable-libgsm \
--enable-libmodplug \
--enable-libmp3lame \
--enable-libopencore-amrnb \
--enable-libopencore-amrwb \
--enable-libopus \
--enable-libsnappy \
--enable-libsoxr \
--enable-libspeex \
--enable-libtheora \
--enable-libvidstab \
--enable-libvo-amrwbenc \
--enable-libvorbis \
--enable-libvpx \
--enable-libwavpack \
--enable-libx264 \
--enable-libx265 \
--enable-libxvid \
--enable-libzmq \
--enable-libzvbi \
--enable-version3 \
--pkg-config-flags=--static \
--disable-securetransport \
--disable-ffplay
新しいffmpegの幹部で、すべてがまだ動作します。しかし、私は、包装、署名やアプリをサンドボックス化していたら、ffmpegのは、すぐに私はそれがこのエラーを投げて起動しようとして働いて停止します。
An error occurred ffmpeg was killed with signal SIGABRT Error: ffmpeg was killed with signal SIGABRT
at ChildProcess.eval (webpack:///../node_modules/fluent-ffmpeg/lib/processor.js?:180:22)
at emitTwo (events.js:125:13)
at ChildProcess.emit (events.js:213:7)
at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
私は--disable-securetransport
フラグを削除しようとした、それが持っていることができるかどうかを確認何かと混乱し、同じ結果。
私はLinuxマシンでコンパイルしようとしましたが、それは同じことを助けることができるかどうかだけです。
カスタムコンパイル済みのexecを使用すると、サンドボックスでは機能しませんが、静的なものを使用すると、すべてのようにxattr
の後には問題ありません。
私が気づいた唯一のことは、自分のカスタムコンパイルが20m程度で、ダウンロードした静的インストールが43moであることです。
私は本当にこれに固執しています。
'--enable-static'と' --extra-ldflags = -static'を追加してみてください。 – Mulvya
ありがとう、私はそれを試しています。 '--extra-ldflags = -static'は使用できませんでしたが、 'Cコンパイラテストに失敗しました'というエラーが表示され、クロスコンパイルが行われました。なしで試してみてください。 – YoannM
@Mulvya動作しませんでしたが、結果は同じです:( – YoannM