ビデオを継続的に録画し、録画を停止せずにビデオの一部をサーバーにアップロードできる Android アプリケーションを開発したいと考えています。ビデオを停止せずに最大 60 分間録画できることは、アプリケーションにとって非常に重要です。
初期アプローチ
アプリケーションは次の 2 つの部分で構成されます。
- カメラから連続して動画を記録する MediaRecorder。
- カッター/コピー - パート: ビデオの録画中に、特定のセグメントを取り出してサーバーに送信する必要があります。この部分はhttp://ffmpeg4android.netcompss.com/
libffmpeg.soを使用して実装されました。私は、必要なパラメーターを指定して ffmpeg を直接実行できる VideoKit Wrapper を使用しました。
私の問題
paramsでffmpegコマンドを試しました
ffmpeg -ss 00:00:03 -i <in-file> -t 00:00:05 -vcodec copy -acodec copy <out-file>
Android の MediaRecorder が録音を終了している限り、これはうまく機能しました。
同じコマンドを実行すると、MediaRecorder がファイルを記録しているときに、ffmpeg が「操作は許可されていません」というエラー メッセージで終了します。
- エラーメッセージは、Androidがファイルへのアクセスを妨げているという意味ではないと思います。ビデオ内の適切な位置を見つけるには、ffmpeg に「moov-atoms」が必要だと思います。
そのため、他のアプローチ(moov-atom を必要としない)を考えました。
- android で rtsp ストリームを作成し、後で rtsp ストリームにアクセスします。問題は、私の知る限り、Android SDK が rtsp ストリームへの記録をサポートしていないことです。
- たぶん、ffmpeg でカメラに直接アクセスできます (/dev/video0 はビデオ デバイスのようです?!)
- ストリーミングの代替として webm について読みましたが、おそらく android は webm ストリームを記録できますか?!
TLDR: 長すぎて読めませんでした:
録画中にffmpeg(libffmpeg.so)で動画ファイルにアクセスしたい。Fffmpeg が「操作は許可されていません」というエラー メッセージで終了する
ゴール:
私の目標は、ビデオ (およびオーディオ) を録画し、録画中にビデオの一部を取得してサーバーにアップロードすることです。
多分あなたは私が問題を解決するのを手伝ってくれるか、私の問題に取り組む方法について他のアイデアを持っています.
よろしくお願いします。