Git Product home page Git Product logo

chillingvan / androidinstantvideo Goto Github PK

View Code? Open in Web Editor NEW
712.0 32.0 195.0 957 KB

展现Android硬编码下的视频数据流动,可以对视频做处理,例如加滤镜,加水印等,做直播推流(用RTMP)。 Show the stream of Android video hardware encode, including video processing and video publishing by RTMP.

License: Apache License 2.0

Java 100.00%
android opengl video encoder

androidinstantvideo's People

Contributors

chillingvan avatar inventionsbyhamid avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

androidinstantvideo's Issues

Stream RTMP Problem

Black screen appears on the push stream and the sound is not continuous, Thanks.

How to draw list of videos over camera preview and record simultaneously?

I have seen the TestMp4MuxerActivity and can draw images over camera preview. How do i draw video over camera preview? I want to achieve real time video filters(like stars and all) like other photo editing apps. For this i want to draw the filter videos over camera preview and record it simultaneously. I am able to decode a video to another surface but not able to draw it on the camera preview itself. How to achieve this?

Camera records video quite bad (drops frames), video isn't smooth

Next example record video weirdly, it drops a lot of frames, not smooth

What could be the issue?

public class TestMp4MuxerActivity2 extends AppCompatActivity {

    private CameraStreamPublisher streamPublisher;
    private CameraPreviewTextureView cameraPreviewTextureView;
    private InstantVideoCamera instantVideoCamera;
    private Handler handler;
    private HandlerThread handlerThread;
    private TextView outDirTxt;
    private String outputDir;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        outputDir = Environment.getExternalStorageDirectory() + "/test_mp4_encode.mp4";
        setContentView(R.layout.activity_test_mp4_muxer);
        cameraPreviewTextureView = findViewById(R.id.camera_produce_view);
        cameraPreviewTextureView.setOnDrawListener(new H264Encoder.OnDrawListener() {
            @Override
            public void onGLDraw(ICanvasGL canvasGL, List<GLTexture> producedTextures, List<GLTexture> consumedTextures) {
                GLTexture texture = producedTextures.get(0);
                GLTexture mediaTexture = producedTextures.get(1);
                drawVideoFrame(canvasGL, texture.getSurfaceTexture(), texture.getRawTexture(), mediaTexture);
            }

        });
        outDirTxt = findViewById(R.id.output_dir_txt);
        outDirTxt.setText(outputDir);

        instantVideoCamera = new InstantVideoCamera(Camera.CameraInfo.CAMERA_FACING_FRONT, 1920, 1080);

        handlerThread = new HandlerThread("StreamPublisherOpen");
        handlerThread.start();
        handler = new Handler(handlerThread.getLooper()) {
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                StreamPublisher.StreamPublisherParam streamPublisherParam = new StreamPublisher.StreamPublisherParam(1920, 1080, 8000 * 1000, 30, 1, 44100, 19200);
                streamPublisherParam.outputFilePath = outputDir;
                streamPublisherParam.setInitialTextureCount(2);
                streamPublisher.prepareEncoder(streamPublisherParam, new H264Encoder.OnDrawListener() {
                    @Override
                    public void onGLDraw(ICanvasGL canvasGL, List<GLTexture> producedTextures, List<GLTexture> consumedTextures) {
                        GLTexture texture = consumedTextures.get(1);
                        GLTexture mediaTexture = consumedTextures.get(0);
                        drawVideoFrame(canvasGL, texture.getSurfaceTexture(), texture.getRawTexture(), mediaTexture);
                    }

                });
                try {
                    streamPublisher.startPublish();
                } catch (IOException e) {
                    e.printStackTrace();
                    ((TextView)findViewById(R.id.test_camera_button)).setText("START");
                }
            }
        };

        streamPublisher = new CameraStreamPublisher(new MP4Muxer(), cameraPreviewTextureView, instantVideoCamera);
        streamPublisher.setOnSurfacesCreatedListener(new CameraStreamPublisher.OnSurfacesCreatedListener() {
            @Override
            public void onCreated(List<GLTexture> producedTextureList, StreamPublisher streamPublisher) {
                //GLTexture texture = producedTextureList.get(1);
                GLTexture mediaTexture = producedTextureList.get(1);
                streamPublisher.addSharedTexture(new GLTexture(mediaTexture.getRawTexture(),
                        mediaTexture.getSurfaceTexture()));
                //mediaSurface = new Surface(texture.getSurfaceTexture());
            }
        });
    }

    private void drawVideoFrame(ICanvasGL canvasGL, @Nullable SurfaceTexture outsideSurfaceTexture,
                                @Nullable BasicTexture outsideTexture, GLTexture mediaTexture) {
        int width = outsideTexture.getWidth();
        int height = outsideTexture.getHeight();

        canvasGL.drawSurfaceTexture(outsideTexture, outsideSurfaceTexture,
                0, 0, width, height);
    }

    @Override
    protected void onResume() {
        super.onResume();
        streamPublisher.resumeCamera();
    }

    @Override
    protected void onPause() {
        super.onPause();
        streamPublisher.pauseCamera();
        if (streamPublisher.isStart()) {
            streamPublisher.closeAll();
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        handlerThread.quitSafely();
    }

    public void clickStartTest(View view) {
        TextView textView = (TextView) view;
        if (streamPublisher.isStart()) {
            streamPublisher.closeAll();
            textView.setText("START");

            String file = Environment.getExternalStorageDirectory() +
                    File.separator + "test_mp4_encode.mp4";
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(file));
            intent.setDataAndType(Uri.parse(file), "video/mp4");
            startActivity(intent);
        } else {
            streamPublisher.resumeCamera();
            handler.sendEmptyMessage(1);
            textView.setText("STOP");
        }
    }
}

如何实现预览的分辨率和录像的分辨率不同

预览的CameraPreviewTextureView分辨率是180x320,录像的分辨率是1080x1920,我通过
@OverRide
public void onSurfaceChanged(int width, int height) {
width=1080;
height=1920;
super.onSurfaceChanged(width, height);
}
实现了效果,但是预览窗口的180x320里的内容只是整个画面1080x1920的一部分,不是全部
请问,如何解决这个问题,谢谢

Need help: Using surface created in SurfaceTextureCreatedListener to display screen using MediaProjection

We can display screen using the following sample: https://github.com/android/media-samples/tree/master/ScreenCapture

MediaProjection requires to give a surface to draw screen frames. I am modifying the TestCameraPublisherActivity to also include the screen display on the textureview. When I pass the surface obtained in the SurfaceTextureCreatedListener to media projection, nothing is drawn when i use canvasGL.drawSurfaceTexture, I also set the onFrameAvailable on the SurfaceTexture and can see that it is being called for screen display.

Any help as to why drawing the screen display surface texture does not show on the preview?

添加时间水印?

楼主,你好,请问可以为视频添加时间水印吗?像行车记录仪或监控视频一样。

TestCameraAndVideoActivity - does it record in video file?

I tried TestCameraAndVideoActivity sample, but what does it do? Does it write to a file? I could not find this video file

screenshot_2018-07-22-13-58-54-582_com chillingvan instantvideo sample

Also it has many exceptions when I press "Stop" button, mb it fails to create file and record something to it

07-22 13:53:47.774 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at android.os.HandlerThread.run(HandlerThread.java:61)
    java.io.IOException: This InputStream was closed
        at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
        at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
        at com.chillingvan.lib.publisher.StreamPublisher$2.handleMessage(StreamPublisher.java:116)
        at android.os.Handler.dispatchMessage(Handler.java:102)
07-22 13:53:47.775 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at android.os.Looper.loop(Looper.java:157)
        at android.os.HandlerThread.run(HandlerThread.java:61)
    java.io.IOException: This InputStream was closed
        at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
        at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
        at com.chillingvan.lib.publisher.StreamPublisher$2.handleMessage(StreamPublisher.java:116)
        at android.os.Handler.dispatchMessage(Handler.java:102)
07-22 13:53:47.776 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at android.os.Looper.loop(Looper.java:157)
        at android.os.HandlerThread.run(HandlerThread.java:61)
    java.io.IOException: This InputStream was closed
        at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
        at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
        at com.chillingvan.lib.publisher.StreamPublisher$2.handleMessage(StreamPublisher.java:116)
        at android.os.Handler.dispatchMessage(Handler.java:102)
07-22 13:53:47.777 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at android.os.Looper.loop(Looper.java:157)
        at android.os.HandlerThread.run(HandlerThread.java:61)
    java.io.IOException: This InputStream was closed
        at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
        at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
        at com.chillingvan.lib.publisher.StreamPublisher$2.handleMessage(StreamPublisher.java:116)
07-22 13:53:47.778 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:157)
        at android.os.HandlerThread.run(HandlerThread.java:61)
    java.io.IOException: This InputStream was closed
        at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
        at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
        at com.chillingvan.lib.publisher.StreamPublisher$2.handleMessage(StreamPublisher.java:116)
07-22 13:53:47.779 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:157)
        at android.os.HandlerThread.run(HandlerThread.java:61)
    java.io.IOException: This InputStream was closed
        at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
        at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
07-22 13:53:47.780 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.publisher.StreamPublisher$2.handleMessage(StreamPublisher.java:116)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:157)
        at android.os.HandlerThread.run(HandlerThread.java:61)
    java.io.IOException: This InputStream was closed
        at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
        at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
07-22 13:53:47.781 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.publisher.StreamPublisher$2.handleMessage(StreamPublisher.java:116)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:157)
        at android.os.HandlerThread.run(HandlerThread.java:61)
    java.io.IOException: This InputStream was closed
        at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
        at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
07-22 13:53:47.782 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.publisher.StreamPublisher$2.handleMessage(StreamPublisher.java:116)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:157)
        at android.os.HandlerThread.run(HandlerThread.java:61)
    java.io.IOException: This InputStream was closed
        at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
07-22 13:53:47.783 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
        at com.chillingvan.lib.publisher.StreamPublisher$2.handleMessage(StreamPublisher.java:116)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:157)
        at android.os.HandlerThread.run(HandlerThread.java:61)
    java.io.IOException: This InputStream was closed
        at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
07-22 13:53:47.784 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
        at com.chillingvan.lib.publisher.StreamPublisher$2.handleMessage(StreamPublisher.java:116)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:157)
        at android.os.HandlerThread.run(HandlerThread.java:61)
    java.io.IOException: This InputStream was closed
07-22 13:53:47.785 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
        at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
        at com.chillingvan.lib.publisher.StreamPublisher$2.handleMessage(StreamPublisher.java:116)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:157)
        at android.os.HandlerThread.run(HandlerThread.java:61)
    java.io.IOException: This InputStream was closed
07-22 13:53:47.786 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
        at android.os.HandlerThread.run(HandlerThread.java:61)
07-22 13:53:47.789 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
07-22 13:53:47.790 32261-408/com.chillingvan.instantvideo.sample W/System.err: java.io.IOException: This InputStream was closed
        at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
07-22 13:53:47.791 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at android.os.HandlerThread.run(HandlerThread.java:61)
07-22 13:53:47.792 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
07-22 13:53:47.793 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.publisher.StreamPublisher$2.handleMessage(StreamPublisher.java:116)
07-22 13:53:47.794 32261-408/com.chillingvan.instantvideo.sample W/System.err: java.io.IOException: This InputStream was closed
        at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
07-22 13:53:47.795 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at android.os.HandlerThread.run(HandlerThread.java:61)
07-22 13:53:47.796 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
07-22 13:53:47.798 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.publisher.StreamPublisher$2.handleMessage(StreamPublisher.java:116)
    java.io.IOException: This InputStream was closed
        at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
07-22 13:53:47.799 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
        at com.chillingvan.lib.publisher.StreamPublisher$2.handleMessage(StreamPublisher.java:116)
07-22 13:53:47.800 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at android.os.HandlerThread.run(HandlerThread.java:61)
        at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
07-22 13:53:47.801 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
07-22 13:53:47.802 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:157)
        at android.os.HandlerThread.run(HandlerThread.java:61)
07-22 13:53:47.803 32261-408/com.chillingvan.instantvideo.sample W/System.err: java.io.IOException: This InputStream was closed
        at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
        at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
        at com.chillingvan.lib.publisher.StreamPublisher$2.handleMessage(StreamPublisher.java:116)
        at android.os.Looper.loop(Looper.java:157)
        at com.chillingvan.lib.publisher.StreamPublisher$2.handleMessage(StreamPublisher.java:116)
07-22 13:53:47.804 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at android.os.HandlerThread.run(HandlerThread.java:61)
        at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
        at android.os.Handler.dispatchMessage(Handler.java:102)
07-22 13:53:47.805 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.publisher.StreamPublisher$2.handleMessage(StreamPublisher.java:116)
    java.io.IOException: This InputStream was closed
07-22 13:53:47.806 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
07-22 13:53:47.807 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
        at android.os.HandlerThread.run(HandlerThread.java:61)
07-22 13:53:47.808 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.publisher.StreamPublisher$2.handleMessage(StreamPublisher.java:116)
    java.io.IOException: This InputStream was closed
07-22 13:53:47.809 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:157)
07-22 13:53:47.810 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
        at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
07-22 13:53:47.811 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.publisher.StreamPublisher$2.handleMessage(StreamPublisher.java:116)
    java.io.IOException: This InputStream was closed
        at android.os.Handler.dispatchMessage(Handler.java:102)
07-22 13:53:47.812 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at android.os.Looper.loop(Looper.java:157)
07-22 13:53:47.813 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.publisher.StreamPublisher$2.handleMessage(StreamPublisher.java:116)
    java.io.IOException: This InputStream was closed
        at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
        at android.os.Looper.loop(Looper.java:157)
07-22 13:53:47.814 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
        at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
07-22 13:53:47.815 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.publisher.StreamPublisher$2.handleMessage(StreamPublisher.java:116)
07-22 13:53:47.816 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
        at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
07-22 13:53:47.817 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
07-22 13:53:47.818 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
        at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
07-22 13:53:47.819 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
        at android.os.HandlerThread.run(HandlerThread.java:61)
07-22 13:53:47.820 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
        at android.os.HandlerThread.run(HandlerThread.java:61)
    java.io.IOException: This InputStream was closed
07-22 13:53:47.821 32261-408/com.chillingvan.instantvideo.sample W/System.err: java.io.IOException: This InputStream was closed
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
07-22 13:53:47.822 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at android.os.HandlerThread.run(HandlerThread.java:61)
07-22 13:53:47.823 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
        at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
07-22 13:53:47.824 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at android.os.HandlerThread.run(HandlerThread.java:61)
    java.io.IOException: This InputStream was closed
07-22 13:53:47.825 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.publisher.StreamPublisher$2.handleMessage(StreamPublisher.java:116)
    java.io.IOException: This InputStream was closed
        at android.os.Handler.dispatchMessage(Handler.java:102)
07-22 13:53:47.826 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
        at android.os.HandlerThread.run(HandlerThread.java:61)
        at com.chillingvan.lib.publisher.StreamPublisher$2.handleMessage(StreamPublisher.java:116)
07-22 13:53:47.827 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at android.os.Looper.loop(Looper.java:157)
        at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
07-22 13:53:47.828 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at com.chillingvan.lib.encoder.MediaCodecInputStream.readAll(MediaCodecInputStream.java:138)
07-22 13:53:47.829 32261-408/com.chillingvan.instantvideo.sample W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
        at com.chillingvan.lib.encoder.MediaCodecInputStream.read(MediaCodecInputStream.java:108)
07-22 13:53:47.830 32261-408/com.chillingvan.instantvideo.sample W/System.err: java.io.IOException: This InputStream was closed
07-22 13:53:47.856 32261-458/com.chillingvan.instantvideo.sample I/MPEG4Writer: Received total/0-length (154/0) buffers and encoded 154 frames. - Video
07-22 13:53:47.856 32261-412/com.chillingvan.instantvideo.sample D/MPEG4Writer: Video track stopping
07-22 13:53:47.858 32261-412/com.chillingvan.instantvideo.sample D/MPEG4Writer: Video track source stopping
07-22 13:53:47.859 32261-412/com.chillingvan.instantvideo.sample D/MPEG4Writer: Video track source stopped
07-22 13:53:47.859 32261-459/com.chillingvan.instantvideo.sample I/MPEG4Writer: Received total/0-length (143/0) buffers and encoded 143 frames. - Audio
07-22 13:53:47.860 32261-459/com.chillingvan.instantvideo.sample I/MPEG4Writer: Audio track drift time: 0 us
07-22 13:53:47.860 32261-412/com.chillingvan.instantvideo.sample D/MPEG4Writer: Video track stopped
    Audio track stopping
    Audio track source stopping
    Audio track source stopped
    Audio track stopped
    Duration from tracks range is [5006000, 5178978] us
    Stopping writer thread
07-22 13:53:47.861 32261-450/com.chillingvan.instantvideo.sample D/MPEG4Writer: 0 chunks are written in the last batch
07-22 13:53:47.863 32261-412/com.chillingvan.instantvideo.sample D/MPEG4Writer: Writer thread stopped
07-22 13:53:47.867 32261-412/com.chillingvan.instantvideo.sample I/MPEG4Writer: The mp4 file will not be streamable.
07-22 13:53:47.867 32261-412/com.chillingvan.instantvideo.sample D/MPEG4Writer: Video track stopping
    Audio track stopping
07-22 13:53:55.025 32261-32261/com.chillingvan.instantvideo.sample D/BaseGLTextureView: onSurfaceTextureDestroyed: 
07-22 13:54:31.132 32261-32267/com.chillingvan.instantvideo.sample I/art: Ignoring second debugger -- accepting and dropping

如何获取预览图像保存到bitmap

如何从
public void onGLDraw(ICanvasGL canvasGL, List producedTextures, List consumedTextures) {

            GLTexture texture = producedTextures.get(0);
            SurfaceTexture surfaceTexture = texture.getSurfaceTexture();
            RawTexture rawTexture = texture.getRawTexture();
            canvasGL.drawSurfaceTexture(rawTexture, surfaceTexture, 0, 0, rawTexture.getWidth(), rawTexture.getHeight());
        }

获取照片?
谢谢

第二次录制mp4muxer出现黑屏问题。

when i started the first recorder,it was no problem。
but when the second,don't close the mp4muxeractivity,the video is all black,only has vioce.
i think it is something error in restart recorder.but i can't in short time to understand the project.

in the same time i want to try pause recorder the video,but the aacEncoder don't find pause,when i try restart it occur bug.

streamPublisher 为null的问题

cameraPreviewTextureView.setOnCreateGLContextListener(new GLThread.OnCreateGLContextListener() {
@OverRide
public void onCreate(EglContextWrapper eglContext) {
streamPublisher = new StreamPublisher(eglContext, muxer);
}
});
streamPublisher = new StreamPublisher(eglContext, muxer);
这一句经常没有执行,这个oncreate是在哪里调用的?没有执行导致streamPublisher =null。

视频添加图层

您好,请问可以在后台(不在界面显示)给本地视频的每一帧进行绘制吗?

请问No buffer available 无可用缓冲区怎么解决?

Honor 手机 NTH-AN00 android 12 api 31,
运行推流一段时间后,会出现如下错误
android.media.MediaCodec$CodecException: Error 0xffffffde
代码:MediaCodecInputStream 138行

readSize = is.read(readBuf, 0, readBuf.length);
onReadAllCallback.onReadOnce(readBuf, readSize, copyBufferInfo(is.getLastBufferInfo()));

请教一下怎么加Text 文字水印?

private void drawVideoFrame(ICanvasGL canvasGL, @Nullable SurfaceTexture outsideSurfaceTexture, @Nullable BasicTexture outsideTexture) {
     // Here you can do video process
     // 此处可以视频处理,例如加水印等等
     if(textureFilterLT == null) {
         textureFilterLT = new BasicTextureFilter();
     }
     if(textureFilterRT == null) {
         textureFilterRT = new HueFilter(180);
     }
}

这里说了可以加水印,但是还是不会加text的文本水印,求教

卡死现象

楼主,你好。研究了一下你的例子,不联网情况下直接Android5.0直接闪退了

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.