Android カメラ/ファイルから、ビデオをブロードキャストするリモート ffserver にストリーミングする必要があります。次のようなコマンドを発行することで、ubuntu のデスクトップでこれを行うことができます。
ffmpeg -f video4linux2 -s 640x480 -r 25 -i /dev/video0 http://192.168.0.20:8090/cam1.ffm
または、次のようなファイルをストリーミングします。
ffmpeg -i /home/kev/share/movie.mp4 http://192.168.0.20:8090/cam1.ffm
だから基本的に私はAndroidから上記のことができるようにしたい. 何度か検索した後、これは私がこれまで行ってきたことです。このリンクhttp://bambuser.com/opensourceに出会い、そこから ffmpeg ソースをダウンロードしてビルドしました。ビルドはいくつかのものを出力します: 1. 共有ライブラリ [libavcodec、libavcore、libavdevice、libavfilter、libavformat、libavutil、libswscale] 2. 実行可能ファイル [ffmpeg、ffprobe]
これらのリソースを使用して機能をプラグインする方法がわからないこれは、これまでに試したことです。アプリケーションの「ファイル」ディレクトリに、Runtime.getRuntime().exec() を使用して実行可能ファイルのアクセス許可を設定します。最後のステップは、次のステートメントを使用して Java で実行することでした。
Runtime.getRuntime().exec("ffmpeg -i file:///android_asset/movie.mp4http://<server>:8090/cam1.ffm");
2. ffmpeg.c、共有ライブラリ、およびビルドによって生成された「include」フォルダーを jni フォルダーにコピーし、ffmpeg.c の main() 関数をラップする jni 関数を追加しました。このアプローチでは、ndk-build を成功させるために ffmpeg ソースからいくつかのヘッダー ファイルをコピーする必要があることに気付きました。
上記の2つのアプローチはうまくいきませんでした。どこが間違っているのかわからないので、Androidからのmp4ファイルのような単純なffmpegストリーミングを行う方法についての助けをいただければ幸いです。