bytedeco/javacv

I want to know about Android push streaming

Open

#1,484 opened on Aug 5, 2020

View on GitHub
 (2 comments) (0 reactions) (0 assignees)Java (1,583 forks)batch import
help wantedquestion

Repository metrics

Stars
 (6,985 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

private void initRecoder(String url,int width,int height,int frameRate) {
        try {
            recorder = FrameRecorder.createDefault(url, width, height);
        } catch (FrameRecorder.Exception e) {
            e.printStackTrace();
        }
        recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264); // avcodec.AV_CODEC_ID_H264,编码
        recorder.setFormat("flv");//封装格式,如果是推送到rtmp就必须是flv封装格式
        recorder.setFrameRate(frameRate);

        try {
            recorder.start();

            AndroidFrameConverter converter = new AndroidFrameConverter();
            long startTime = System.currentTimeMillis();
            long videoTS;
            Frame rotatedFrame;
            while (true) {
                rotatedFrame = converter.convert(mTextureView.getBitmap());
                //  rotatedFrame = converter.convert(grabbedImage);
                if (startTime == 0) {
                    startTime = System.currentTimeMillis();
                }
                videoTS = 1000 * (System.currentTimeMillis() - startTime);
                recorder.setTimestamp(videoTS);
                Log.i("frame", videoTS + ":" + rotatedFrame.toString());
                try {
                    recorder.record(rotatedFrame);
                    Thread.sleep(40);
                } catch (FrameRecorder.Exception e) {
                    e.printStackTrace();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        } catch (FrameRecorder.Exception ex) {
            ex.printStackTrace();
        }

    }

error:

org.bytedeco.javacv.FrameRecorder$Exception: avcodec_open2() error -542398533: Could not open video codec.

Contributor guide