From 7670dc00b4db4b0bb2ad66f99bf8e06236f509e6 Mon Sep 17 00:00:00 2001 From: eric Date: Thu, 28 Dec 2017 15:05:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90MediaCodec=E7=BC=96=E7=A0=81?= =?UTF-8?q?=E5=B9=B6=E4=BD=BF=E7=94=A8RTMPDump=E6=8E=A8=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rtmpfile/src/main/AndroidManifest.xml | 4 +- ...java => CameraFFmpegPushRtmpActivity.java} | 2 +- .../wangheart/rtmpfile/CameraInterface.java | 9 ++++- .../CameraMediaCodecRtmpActivity.java | 9 +++-- ...y.java => FFmpegPushFileRtmpActivity.java} | 2 +- .../com/wangheart/rtmpfile/MainActivity.java | 37 ++++++++++++++++--- .../wangheart/rtmpfile/rtmp/RtmpHandle.java | 4 +- .../src/main/res/layout/activity_main.xml | 13 ++++--- 8 files changed, 58 insertions(+), 22 deletions(-) rename rtmpfile/src/main/java/com/wangheart/rtmpfile/{CameraActivity.java => CameraFFmpegPushRtmpActivity.java} (97%) rename rtmpfile/src/main/java/com/wangheart/rtmpfile/{PushFileRtmpActivity.java => FFmpegPushFileRtmpActivity.java} (97%) diff --git a/rtmpfile/src/main/AndroidManifest.xml b/rtmpfile/src/main/AndroidManifest.xml index ed5b239..4867743 100644 --- a/rtmpfile/src/main/AndroidManifest.xml +++ b/rtmpfile/src/main/AndroidManifest.xml @@ -16,8 +16,8 @@ - - + + diff --git a/rtmpfile/src/main/java/com/wangheart/rtmpfile/CameraActivity.java b/rtmpfile/src/main/java/com/wangheart/rtmpfile/CameraFFmpegPushRtmpActivity.java similarity index 97% rename from rtmpfile/src/main/java/com/wangheart/rtmpfile/CameraActivity.java rename to rtmpfile/src/main/java/com/wangheart/rtmpfile/CameraFFmpegPushRtmpActivity.java index c7f163c..e4ad88a 100644 --- a/rtmpfile/src/main/java/com/wangheart/rtmpfile/CameraActivity.java +++ b/rtmpfile/src/main/java/com/wangheart/rtmpfile/CameraFFmpegPushRtmpActivity.java @@ -26,7 +26,7 @@ * Modified : */ -public class CameraActivity extends Activity implements SurfaceHolder.Callback { +public class CameraFFmpegPushRtmpActivity extends Activity implements SurfaceHolder.Callback { private MySurfaceView sv; private final int WIDTH = 480; private final int HEIGHT = 320; diff --git a/rtmpfile/src/main/java/com/wangheart/rtmpfile/CameraInterface.java b/rtmpfile/src/main/java/com/wangheart/rtmpfile/CameraInterface.java index cf2d7cb..01c7030 100644 --- a/rtmpfile/src/main/java/com/wangheart/rtmpfile/CameraInterface.java +++ b/rtmpfile/src/main/java/com/wangheart/rtmpfile/CameraInterface.java @@ -15,7 +15,14 @@ import com.wangheart.rtmpfile.utils.LogUtils; import java.io.IOException; - +/** + * Author : eric + * CreateDate : 2017/11/6 10:57 + * Email : ericli_wang@163.com + * Version : 2.0 + * Desc : 摄像头操作类 + * Modified : + */ public class CameraInterface { private Camera mCamera; private boolean isPreviewing = false; diff --git a/rtmpfile/src/main/java/com/wangheart/rtmpfile/CameraMediaCodecRtmpActivity.java b/rtmpfile/src/main/java/com/wangheart/rtmpfile/CameraMediaCodecRtmpActivity.java index a5d2a3a..626ef77 100644 --- a/rtmpfile/src/main/java/com/wangheart/rtmpfile/CameraMediaCodecRtmpActivity.java +++ b/rtmpfile/src/main/java/com/wangheart/rtmpfile/CameraMediaCodecRtmpActivity.java @@ -82,12 +82,11 @@ private void init() { mFlvPacker.setPacketListener(new Packer.OnPacketListener() { @Override public void onPacket(final byte[] data, final int packetType) { -// IOUtils.write(mOutStream, data, 0, data.length); pushExecutor.execute(new Runnable() { @Override public void run() { - int ret=RtmpHandle.getInstance().push(data, data.length); - LogUtils.w(data.length + " " + packetType + " ret:"+ret); + int ret = RtmpHandle.getInstance().push(data, data.length); + LogUtils.w("type:" + packetType + " length:" + data.length + " 推流结果:" + ret); } }); } @@ -186,7 +185,7 @@ public void surfaceCreated(SurfaceHolder holder) { @Override public void run() { int ret = RtmpHandle.getInstance().connect("rtmp://192.168.31.127/live"); - LogUtils.w("connect ret " + ret); + LogUtils.w("打开RTMP连接: " + ret); } }); } @@ -200,6 +199,8 @@ public void surfaceDestroyed(SurfaceHolder holder) { mFlvPacker.stop(); CameraInterface.getInstance().stopPreview(); CameraInterface.getInstance().releaseCamera(); + int ret = RtmpHandle.getInstance().close(); + LogUtils.w("关闭RTMP连接:" + ret); IOUtils.close(mOutStream); } diff --git a/rtmpfile/src/main/java/com/wangheart/rtmpfile/PushFileRtmpActivity.java b/rtmpfile/src/main/java/com/wangheart/rtmpfile/FFmpegPushFileRtmpActivity.java similarity index 97% rename from rtmpfile/src/main/java/com/wangheart/rtmpfile/PushFileRtmpActivity.java rename to rtmpfile/src/main/java/com/wangheart/rtmpfile/FFmpegPushFileRtmpActivity.java index dc99949..7b651d6 100644 --- a/rtmpfile/src/main/java/com/wangheart/rtmpfile/PushFileRtmpActivity.java +++ b/rtmpfile/src/main/java/com/wangheart/rtmpfile/FFmpegPushFileRtmpActivity.java @@ -23,7 +23,7 @@ * Modified : */ -public class PushFileRtmpActivity extends Activity { +public class FFmpegPushFileRtmpActivity extends Activity { private TextView tvPushInfo; @Override diff --git a/rtmpfile/src/main/java/com/wangheart/rtmpfile/MainActivity.java b/rtmpfile/src/main/java/com/wangheart/rtmpfile/MainActivity.java index 2538971..e5af118 100644 --- a/rtmpfile/src/main/java/com/wangheart/rtmpfile/MainActivity.java +++ b/rtmpfile/src/main/java/com/wangheart/rtmpfile/MainActivity.java @@ -34,23 +34,43 @@ private void initData() { tvCodecInfo.setText(FFmpegHandle.getInstance().getAvcodecConfiguration()); } - public void btnCamera(View view) { - Intent intent = new Intent(this, CameraActivity.class); + /** + * FFmpeg推送视频文件 + * + * @param view + */ + public void btnFFmpegPushFile(View view) { + Intent intent = new Intent(this, FFmpegPushFileRtmpActivity.class); startActivity(intent); } - public void btnPushFile(View view) { - Intent intent = new Intent(this, PushFileRtmpActivity.class); + /** + * FFmpeg推送摄像头采集的数据 + * + * @param view + */ + public void btnCameraFFmpeg(View view) { + Intent intent = new Intent(this, CameraFFmpegPushRtmpActivity.class); startActivity(intent); } + /** + * MediaCodec编码摄像头数据并保存问flv格式到文件 + * + * @param view + */ public void btnMediaCodec(View view) { Intent intent = new Intent(this, CameraMediaCodecActivity.class); startActivity(intent); } - public void librmtp(View view) { - new Thread(){ + /** + * RTMPDump推送视频文件 + * + * @param view + */ + public void btmRtmpdumpFile(View view) { + new Thread() { @Override public void run() { super.run(); @@ -62,6 +82,11 @@ public void run() { }.start(); } + /** + * MediaCodec编码摄像头数据并使用RTMPDump进行推流 + * + * @param view + */ public void btnMediaCodecRtmp(View view) { Intent intent = new Intent(this, CameraMediaCodecRtmpActivity.class); startActivity(intent); diff --git a/rtmpfile/src/main/java/com/wangheart/rtmpfile/rtmp/RtmpHandle.java b/rtmpfile/src/main/java/com/wangheart/rtmpfile/rtmp/RtmpHandle.java index 7976d89..bef89f9 100644 --- a/rtmpfile/src/main/java/com/wangheart/rtmpfile/rtmp/RtmpHandle.java +++ b/rtmpfile/src/main/java/com/wangheart/rtmpfile/rtmp/RtmpHandle.java @@ -5,12 +5,12 @@ * CreateDate : 2017/12/25 18:13 * Email : ericli_wang@163.com * Version : 2.0 - * Desc : + * Desc : RTMPDump调用类 * Modified : */ public class RtmpHandle { - public static RtmpHandle mInstance; + private static RtmpHandle mInstance; private RtmpHandle() { } diff --git a/rtmpfile/src/main/res/layout/activity_main.xml b/rtmpfile/src/main/res/layout/activity_main.xml index 48f76d6..e6f4fd7 100644 --- a/rtmpfile/src/main/res/layout/activity_main.xml +++ b/rtmpfile/src/main/res/layout/activity_main.xml @@ -19,24 +19,27 @@