Code Monkey home page Code Monkey logo

zecorder's Introduction

Zecorder

 Android screen recording and streaming application

Features

1. SCREEN RECORDING

  • Record screen with custom settings and advanced media specifications​

  • Controller head while recording​

  • Time-countdown before start recording​

  • Funny camera preview​

  • Toggle/switch camera immediately​

  • Draw decorators (logo, watermark…) onto video​

2. SCREEN STREAMING​

  • Realtime streaming screen to RTMP sever​

  • Resumable streaming supports​

  • Camera preview ​

  • Test connection before streaming​

  • Update streaming status onto app view​

3. CAMERA PREVIEW

  • Realtime camera preview while recording or streaming​

  • Toggle camera view (On/Off)​

  • Switch camera (Back/Face)​

  • Set camera size (Small/Medium/Big)​

  • Choose camera position

4. VIDEO MANAGER- List videos recorded by our app​

  • Rename, delete videos​

  • Extract video details​

  • Auto update videos list​

  • Detect and remove invalid videos​

5. SYNCHRONIZATION

  • Synchronize local video to Google Drive Storage​

  • Authentication with Google Account​

  • Run in background service and auto-close when sync completed​

  • Allow to choose specific videos to sync​

  • Sync status for each videos​


ARCHITECTURE

1. Big picture

alt text

2. Streaming picture

alt text


STREAMING USEAGE

1. Build RTMP-Server

Step 1: get SRS

git clone https://github.com/ossrs/srs &&
cd srs/trunk

Step 2: build SRS, Requires Centos6.x/Ubuntu 32/64bits.

./configure && make

Step 3: start SRS

./objs/srs -c conf/srs.conf

2. Application side

Step 1: get app source

git clone https://github.com/1612052/Zecorder.git

Step 2: Build and run application

Step 3:

  • Swipe to Livestream layout
  • Enter the server ip
  • Tap "Test" button
  • Tap "Connect" button
  • Enjoy!!!

* Video guide/demo:

zecorder's People

Contributors

chienpm304 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

Watchers

 avatar  avatar  avatar

zecorder's Issues

broken

这个录屏录制超过1分钟就崩溃了, 这里该怎么解决

Video Encoder does not support Huawei device

Huawei chipset does not know selected color format

Logs:
/MediaVideoEncoderBase: format: {color-format=2130708361, i-frame-interval=2, mime=video/avc, width=1280, bitrate=2048000, frame-rate=15, height=720}
2019-08-28 16:57:56.402 28889-29342/com.chienpm.zecorder I/OMXClient: Treble IOmx obtained
2019-08-28 16:57:56.409 28889-29342/com.chienpm.zecorder I/ACodec: In onAllocateComponent create compenent, codec name: OMX.IMG.TOPAZ.VIDEO.Encoder
2019-08-28 16:57:56.411 28889-29342/com.chienpm.zecorder W/HwExtendedUtils: hw configLocalPlayBack err = -1010
2019-08-28 16:57:56.412 28889-29342/com.chienpm.zecorder W/OMXUtils: do not know color format 0x7f000001 = 2130706433
2019-08-28 16:57:56.413 28889-29342/com.chienpm.zecorder W/OMXUtils: do not know color format 0x7f000005 = 2130706437
2019-08-28 16:57:56.414 28889-29342/com.chienpm.zecorder W/OMXUtils: do not know color format 0x7f000002 = 2130706434
2019-08-28 16:57:56.414 28889-29342/com.chienpm.zecorder W/OMXUtils: do not know color format 0x7f000006 = 2130706438
2019-08-28 16:57:56.414 28889-29342/com.chienpm.zecorder W/OMXUtils: do not know color format 0x17 = 23
2019-08-28 16:57:56.414 28889-29342/com.chienpm.zecorder W/OMXUtils: do not know color format 0x18 = 24
2019-08-28 16:57:56.415 28889-29342/com.chienpm.zecorder W/OMXUtils: do not know color format 0x7f000011 = 2130706449
2019-08-28 16:57:56.415 28889-29342/com.chienpm.zecorder W/OMXUtils: do not know color format 0x16 = 22
2019-08-28 16:57:56.415 28889-29342/com.chienpm.zecorder W/OMXUtils: do not know color format 0x7f000007 = 2130706439
2019-08-28 16:57:56.415 28889-29342/com.chienpm.zecorder W/OMXUtils: do not know color format 0x7f000008 = 2130706440
2019-08-28 16:57:56.416 28889-29342/com.chienpm.zecorder W/OMXUtils: do not know color format 0x19 = 25
2019-08-28 16:57:56.416 28889-29342/com.chienpm.zecorder W/OMXUtils: do not know color format 0x1a = 26
2019-08-28 16:57:56.416 28889-29342/com.chienpm.zecorder W/OMXUtils: do not know color format 0x1b = 27
2019-08-28 16:57:56.416 28889-29342/com.chienpm.zecorder W/OMXUtils: do not know color format 0x1c = 28
2019-08-28 16:57:56.417 28889-29342/com.chienpm.zecorder W/OMXUtils: do not know color format 0x7f000003 = 2130706435
2019-08-28 16:57:56.417 28889-29342/com.chienpm.zecorder W/OMXUtils: do not know color format 0x7f000009 = 2130706441
2019-08-28 16:57:56.417 28889-29342/com.chienpm.zecorder W/OMXUtils: do not know color format 0x7f00000c = 2130706444
2019-08-28 16:57:56.418 28889-29342/com.chienpm.zecorder W/OMXUtils: do not know color format 0x7f000012 = 2130706450
2019-08-28 16:57:56.418 28889-29342/com.chienpm.zecorder W/OMXUtils: do not know color format 0x7f00000a = 2130706442
2019-08-28 16:57:56.419 28889-29342/com.chienpm.zecorder W/OMXUtils: do not know color format 0x7f00000b = 2130706443
2019-08-28 16:57:56.419 28889-29342/com.chienpm.zecorder W/OMXUtils: do not know color format 0x7f000789 = 2130708361
2019-08-28 16:57:56.420 28889-29342/com.chienpm.zecorder I/ACodec: setupAVCEncoderParameters with [profile: Baseline] [level: Level52]
2019-08-28 16:57:56.420 28889-29342/com.chienpm.zecorder I/ACodec: [OMX.IMG.TOPAZ.VIDEO.Encoder] cannot encode color aspects. Ignoring.
2019-08-28 16:57:56.420 28889-29342/com.chienpm.zecorder I/ACodec: [OMX.IMG.TOPAZ.VIDEO.Encoder] cannot encode HDR static metadata. Ignoring.
2019-08-28 16:57:56.420 28889-29342/com.chienpm.zecorder I/ACodec: setupVideoEncoder succeeded
2019-08-28 16:57:56.421 28889-29342/com.chienpm.zecorder W/OMXUtils: do not know color format 0x7f000789 = 2130708361
2019-08-28 16:57:56.428 28889-29342/com.chienpm.zecorder I/ACodec: onStart

Pause and Resume issue?

Thanks for the amazing library, I would like to ask that how to pause and resume the recording during the screen recording?

MediaScreenEncoderHard watermark

There is a problem with adding watermark to image rotation。

mEncoderSurface.makeCurrent();
mDrawer.draw(mTexId, mTexMatrix, 0);

for(CustomDecorator decor: mDecors)
decor.updateTexId();
RenderUtil.renderTextures(mDecors);
mEncoderSurface.swap();
makeCurrent();

encoder failed on samsung devices

android.media.MediaCodec$CodecException: Error 0xfffffc0e
at android.media.MediaCodec.native_configure(Native Method)
at android.media.MediaCodec.configure(MediaCodec.java:2127)
at android.media.MediaCodec.configure(MediaCodec.java:2043)
at com.screenrecorder.foregroundservice.encoder.MediaVideoEncoderBase.prepare_surface_encoder(MediaVideoEncoderBase.java:93)
at com.screenrecorder.foregroundservice.encoder.MediaScreenEncoderHard.prepare(MediaScreenEncoderHard.java:64)
at com.screenrecorder.foregroundservice.encoder.MediaMuxerWrapper.prepare(MediaMuxerWrapper.java:82)
at com.screenrecorder.foregroundservice.recording.RecordingService.startRecording(RecordingService.java:165)
at com.screenrecorder.foregroundservice.recording.RecordingService.startPerformService(RecordingService.java:109)
at com.screenrecorder.foregroundservice.ControllerService$4$1.onFinish(ControllerService.java:316)
at android.os.CountDownTimer$1.handleMessage(CountDownTimer.java:127)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:246)
at android.app.ActivityThread.main(ActivityThread.java:8512)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)

broken

这里录屏加水印那里超过一分钟就崩溃了

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.