Record full-resolution video on your Android devices.

Related tags

App Telecine
Overview

DEPRECATED: Android 11 now includes native screen recording!

Telecine

License

Copyright 2015 Jake Wharton

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  • Quick tile

    Quick tile

    So can't merge this yet for obvious preview-related reasons. Also, as you're already aware, targeting SDK 23+ means storage and draw-over-apps permissions aren't granted automatically. Opening the PR now anyway so there's no duplicate efforts.

    Closes #92.

    opened by mattprecious 24
  • Added Video Framerate to Fix 'prepare' crash

    Added Video Framerate to Fix 'prepare' crash

    Added Video Framerate to Fix 'prepare' crash - on HTC DNA running Android 5.0.2

    Crash:

    java.lang.RuntimeException: Unable to prepare MediaRecorder. at com.jakewharton.telecine.RecordingSession.startRecording(RecordingSession.java:179) at com.jakewharton.telecine.RecordingSession.access$100(RecordingSession.java:47) at com.jakewharton.telecine.RecordingSession$1.onStart(RecordingSession.java:111) at com.jakewharton.telecine.OverlayView.startRecording(OverlayView.java:147) at com.jakewharton.telecine.OverlayView.access$300(OverlayView.java:31) at com.jakewharton.telecine.OverlayView$5$1$1.run(OverlayView.java:163) at android.view.ViewPropertyAnimator$AnimatorEventListener.onAnimationEnd(ViewPropertyAnimator.java:1121) at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1089) at android.animation.ValueAnimator$AnimationHandler.doAnimationFrame(ValueAnimator.java:666) at android.animation.ValueAnimator$AnimationHandler.run(ValueAnimator.java:682) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:795) at android.view.Choreographer.doCallbacks(Choreographer.java:599) at android.view.Choreographer.doFrame(Choreographer.java:559) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:781) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5466) at java.lang.reflect.Method.invoke(Method.java:-2) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:938) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:733) Caused by: java.io.IOException: prepare failed. at android.media.MediaRecorder._prepare(MediaRecorder.java:-2) at android.media.MediaRecorder.prepare(MediaRecorder.java:742) at com.jakewharton.telecine.RecordingSession.startRecording(RecordingSession.java:177) at com.jakewharton.telecine.RecordingSession.access$100(RecordingSession.java:47) at com.jakewharton.telecine.RecordingSession$1.onStart(RecordingSession.java:111) at com.jakewharton.telecine.OverlayView.startRecording(OverlayView.java:147) at com.jakewharton.telecine.OverlayView.access$300(OverlayView.java:31) at com.jakewharton.telecine.OverlayView$5$1$1.run(OverlayView.java:163) at android.view.ViewPropertyAnimator$AnimatorEventListener.onAnimationEnd(ViewPropertyAnimator.java:1121) at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1089) at android.animation.ValueAnimator$AnimationHandler.doAnimationFrame(ValueAnimator.java:666) at android.animation.ValueAnimator$AnimationHandler.run(ValueAnimator.java:682) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:795) at android.view.Choreographer.doCallbacks(Choreographer.java:599) at android.view.Choreographer.doFrame(Choreographer.java:559) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:781) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5466) at java.lang.reflect.Method.invoke(Method.java:-2) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:938) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:733)

    opened by jaredsburrows 21
  • MediaRecorder prepare fails.

    MediaRecorder prepare fails.

    java.lang.RuntimeException: Unable to prepare MediaRecorder.
            at com.jakewharton.telecine.RecordingSession.startRecording(RecordingSession.java:179)
            at com.jakewharton.telecine.RecordingSession.access$100(RecordingSession.java:47)
            at com.jakewharton.telecine.RecordingSession$1.onStart(RecordingSession.java:111)
            at com.jakewharton.telecine.OverlayView.startRecording(OverlayView.java:147)
            at com.jakewharton.telecine.OverlayView.access$300(OverlayView.java:31)
            at com.jakewharton.telecine.OverlayView$5$1$1.run(OverlayView.java:163)
            at android.view.ViewPropertyAnimator$AnimatorEventListener.onAnimationEnd(ViewPropertyAnimator.java:1121)
            at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1089)
            at android.animation.ValueAnimator$AnimationHandler.doAnimationFrame(ValueAnimator.java:666)
            at android.animation.ValueAnimator$AnimationHandler.run(ValueAnimator.java:682)
            at android.view.Choreographer$CallbackRecord.run(Choreographer.java:795)
            at android.view.Choreographer.doCallbacks(Choreographer.java:599)
            at android.view.Choreographer.doFrame(Choreographer.java:559)
            at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:781)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5466)
            at java.lang.reflect.Method.invoke(Method.java:-2)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:938)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:733)
    Caused by: java.io.IOException: prepare failed.
            at android.media.MediaRecorder._prepare(MediaRecorder.java:-2)
            at android.media.MediaRecorder.prepare(MediaRecorder.java:742)
            at com.jakewharton.telecine.RecordingSession.startRecording(RecordingSession.java:177)
            at com.jakewharton.telecine.RecordingSession.access$100(RecordingSession.java:47)
            at com.jakewharton.telecine.RecordingSession$1.onStart(RecordingSession.java:111)
            at com.jakewharton.telecine.OverlayView.startRecording(OverlayView.java:147)
            at com.jakewharton.telecine.OverlayView.access$300(OverlayView.java:31)
            at com.jakewharton.telecine.OverlayView$5$1$1.run(OverlayView.java:163)
            at android.view.ViewPropertyAnimator$AnimatorEventListener.onAnimationEnd(ViewPropertyAnimator.java:1121)
            at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1089)
            at android.animation.ValueAnimator$AnimationHandler.doAnimationFrame(ValueAnimator.java:666)
            at android.animation.ValueAnimator$AnimationHandler.run(ValueAnimator.java:682)
            at android.view.Choreographer$CallbackRecord.run(Choreographer.java:795)
            at android.view.Choreographer.doCallbacks(Choreographer.java:599)
            at android.view.Choreographer.doFrame(Choreographer.java:559)
            at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:781)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5466)
            at java.lang.reflect.Method.invoke(Method.java:-2)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:938)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:733)
    
    1420755940708 D Attempting to acquire permission to screen capture.
    1420755940748 D Acquired permission to screen capture. Starting service.
    1420755940752 D Starting up!
    1420755940764 D Adding overlay view to window.
    1420755946112 D Starting screen recording...
    1420755946119 D Video size: 100%
    1420755946147 I Output file '/storage/emulated/0/Movies/Telecine/Telecine_2015-01-08-14-25-46.mp4'.
    
    apiLevel
    21
    batteryLevel
    0.63
    charging
    false
    freeDisk
    27374383104.0
    freeMemory
    182602840
    jailbroken
    false
    locale
    en_US
    locationStatus
    allowed
    manufacturer
    HTC
    model
    HTC One
    networkAccess
    wifi
    orientation
    portrait
    osBuild
    LRX22C.H3 release-keys
    osName
    android
    osVersion
    5.0.1
    screenDensity
    3
    screenResolution
    1920x1080
    totalMemory
    201326592
    
    bug 
    opened by JakeWharton 13
  • Move OverlayView to below the status bar on Oreo+

    Move OverlayView to below the status bar on Oreo+

    telecine - oreo 2

    telecine - oreo 1

    This PR moves the overlay below the status bar by applying a top-padding to the View's content.

    I initially wanted to do this by modifying the WindowManager.LayoutParams#y value in onApplyWindowInsets() instead, but that triggers a second onApplyMethodInsets() call with a different value for WindowInsets#getSystemWindowInsetTop() and I am not sure how to avoid/deal with that.

    Fixes #149.

    opened by saket 11
  • Add Demo Mode

    Add Demo Mode

    The option to enable Demo Mode will only be visible after the app is granted the DUMP permission. The permission can be granted via pm.

    There is a split second display delay before the SystemUI updates from the broadcast. Maybe there's a better spot to send the broadcasts before RecordingSession.Listener.onStart()?

    Also, of course, just close this if there's not a large use case relative to the code addition. :)

    opened by NightlyNexus 7
  • Screen refresh rate slows to a crawl AFTER using Telecine

    Screen refresh rate slows to a crawl AFTER using Telecine

    On a rooted LG G3 DUAL (LG-D858HK, LRX22G) Android 5.0, if I run Telecine, record a video and stop the video then turn off the screen (either manually or let it timeout), then after the screen is turned back on, and after some more time (variable, but usually minutes), the screen refresh rate becomes very jerky, gradually gets worse and the only way to get back to normal is to reboot the device. Force Stop on Telecine does not help.

    Interestingly, if the screen goes off while the device is being charged, then the problem does not occur.

    If I run the app while plugged in and Force Stop while still plugged in, then unplug, the refresh issue is still a problem.

    Take Bug Report not working on this device, unfortunately, and I don't have access to the device generally.

    Any ideas what could be causing this?

    opened by marcardar 5
  • error at touch the clock area

    error at touch the clock area

    Process: com.jakewharton.telecine
    Flags: 0xc8be44
    Package: com.jakewharton.telecine v1020000 (1.2.0)
    Build: OPPO/X9007/X9007:5.0/LRX21M/1426582430:user/release-keys
    
    java.lang.RuntimeException: An error occured while executing doInBackground()
        at android.os.AsyncTask$3.done(AsyncTask.java:300)
        at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
        at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
        at java.util.concurrent.FutureTask.run(FutureTask.java:242)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
        at java.lang.Thread.run(Thread.java:818)
    Caused by: java.lang.IllegalArgumentException
        at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:160)
        at com.jakewharton.telecine.RecordingSession$3.doInBackground(RecordingSession.java:321)
        at com.jakewharton.telecine.RecordingSession$3.doInBackground(RecordingSession.java:318)
        at android.os.AsyncTask$2.call(AsyncTask.java:288)
        at java.util.concurrent.FutureTask.run(FutureTask.java:237)
        ... 4 more
    
    
    opened by binsee 5
  • stably crashed on running device before API 23 due to Dagger

    stably crashed on running device before API 23 due to Dagger

    Here is the stack trace:

    FATAL EXCEPTION: main Process: com.jakewharton.telecine.debug, PID: 3870 java.lang.NoClassDefFoundError: Failed resolution of: Lcom/jakewharton/telecine/TelecineTileService; at com.jakewharton.telecine.DaggerTelecineComponent.initialize(DaggerTelecineComponent.java:192) at com.jakewharton.telecine.DaggerTelecineComponent.(DaggerTelecineComponent.java:97) at com.jakewharton.telecine.DaggerTelecineComponent.(DaggerTelecineComponent.java:20) at com.jakewharton.telecine.DaggerTelecineComponent$Builder.build(DaggerTelecineComponent.java:277) at com.jakewharton.telecine.TelecineApplication.onCreate(TelecineApplication.java:22) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1013) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4707) at android.app.ActivityThread.-wrap1(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.lang.ClassNotFoundException: Didn't find class "com.jakewharton.telecine.TelecineTileService" on path:

    opened by TonyTangAndroid 4
  • “Touch the clock area to stop recording.” is misleading,actually u should click battery icon to stop recording

    “Touch the clock area to stop recording.” is misleading,actually u should click battery icon to stop recording

    device-2015-11-04-113922

    In my Nexus 6 and another test phone which I dont know its type ,Touch the clock area will not stop recording,but click the red area will work @JakeWharton ,maybe edit the illustration?

    opened by MarvinR2D2 4
  • Add delete action in notification

    Add delete action in notification

    https://github.com/JakeWharton/Telecine/issues/61 I took the liberty of also allowing multiple notifications for multiple recordings. Will remove if not desired.

    opened by NightlyNexus 4
  • Call startForeground() in TelecineService.onStartCommand()

    Call startForeground() in TelecineService.onStartCommand()

    On my Nexus 5, I've noticed Telecine being randomly killed (during recording) by the system. Calling startForeground() should go a long way to preventing this, I think.

    opened by techehcet 4
  • App closes when recording is about to start

    App closes when recording is about to start

    Expected behavior

    • Application is supposed to run over all the other applications and successfully perform a screen recording

    Actual behavior

    • Application closes when it is about to perform a screen recording; it is unable to record screen

    How to reproduce

    • Download and install the latest release of Telecine application.
    • Launch the application
    • Click on the video icon at the down side of the screen to activate a screen recording icon at the top right corner of your screen
    • Click on the red video icon at the top right corner of your screen
    • App closes; bug is then reproduced

    • App version: 1.6.2
    • Phone name: Gionee f100s
    • Operating system: android version 6.0

    Recording of the bug

    • https://youtu.be/HePiXNwQ0EM
    opened by ChristophyBarth 0
  • Frame rate/performance documentation/configuration

    Frame rate/performance documentation/configuration

    Video recordings seem to be time-delayed and static images seem be get skipped.

    Video: https://youtu.be/dEhQs6B4WCE

    Device: Samsung Galaxy S5 neo SM-G903F Android: 6.0.1

    By the way: is there a way to know at what frame rate the output is recorded and is reducing recording resolution supposed to allow a higher frame rate? It doesn't seem to in my case.

    opened by qubodup 1
  • User-friendly versioning reference in documentation

    User-friendly versioning reference in documentation

    https://play.google.com/store/apps/details?id=com.jakewharton.telecine mentions:

    • Added quick tile for launching the recording overlay (only available on Android N+).

    As far as I understand, letters/codenames are used by developers but Android itself never refers to itself that way ("Requires Android 5.0 and up" on play store page, Settings/About Phone/Software info tells Android version, not code name)

    I suggest the user-friendlier version numbers are used in documentation.

    opened by qubodup 0
  • Logo / icon design proposal

    Logo / icon design proposal

    Hello , i designed a logo and an icon with different color variation for your application , you can check it out here

    Hope you like it and use it as well.

    opened by Bentaleb-Youssouf 0
  • App does not record anything on Android 6.0.1

    App does not record anything on Android 6.0.1

    Expected behavior

    Clicking on the record button should allow us to record everything that is displayed on screen.

    Actual behavior

    When I clicked on record option, a pop up was displayed saying that the app will record everything that us displayed on screen but it did not record anything. I tried multiple times but it didn't record anything.

    How to reproduce

    • Open Telecine
    • Click on record (I enabled three second countdown and recording notification).
    • The app will not record anything.
    • Browser: Telecine v 1.6.2
    • Operating system: Android 6.0.1

    Recording Of The Bug

    https://youtu.be/QZGOx4nrzuQ



    Posted on Utopian.io - Rewarding Open Source Contributors

    opened by umair1209 1
Releases(1.6.2)
Owner
Jake Wharton
Jake Wharton
Twidere-Android Twidere is a powerful twitter client for Android 1.6+ 1 , which gives you a full Holo experience and nearly full Twitter's feature.

Twidere for Android Material Design ready and feature rich Twitter/Mastodon/Fanfou app for Android 4.1+. Enjoy Fediverse now! Twidere-Android is maint

Twidere Project 2.7k Jan 2, 2023
Endoscope lets you to stream live video between android devices over Wi-Fi! 📱📲

Endoscope - RTSP live video streamer for android devices via Wi-Fi. Project is no longer supported. Alternative solution is under development. Stay tu

Przemek 640 Dec 21, 2022
Hobby-keeping - Platform to record books that you read and games you played! Made with Kotlin and Spring Framework

Hobby Keeping API to record books that you read and games you played! Made with

William Barom Mingardi 1 Jan 29, 2022
📲💬 react-native-fontext is a lightweight library to integrate fonts in your React Native application that works seamlessly in android and iOS devices.

React Native Fontext react-native-fontext is a lightweight library to integrate fonts in your React Native application that works seamlessly in androi

mroads 9 Dec 3, 2021
A simple xposed module that helps you use your AdGuard subscription in multiple devices

DualGuard A simple xposed module that helps you use your AdGuard subscription in multiple (>3) devices. Monstor ahead! / 警告 This is NOT a module that

null 7 Oct 2, 2022
A Full-Stack mobile app, including Android & Server, Simple-Poem 简诗. You can write poem in graceful & traditional Chinese style.

JianShi 简诗 A Full-Stack mobile app, including Android side & Server side, Simple-Poem 简诗. You can write poem in graceful & traditional Chinese style.

wingjay 1.9k Jan 6, 2023
A full-stack application showing the power 💪 of KOTLIN. Entire android app + backend Apis written in Kotlin 🔥

Gamebaaz ?? A full-stack application showing the power ?? of KOTLIN. Entire android app + backend Apis written in Kotlin ?? Android Backend Jetpack Co

Sarnava Konar 85 Nov 17, 2022
✨ Social network app made with Android Compose, full Kotlin, Firebase Authentication, Storage and Firestore 🚀

Your friends, for real. Share daily random moments with your friends and discover who they really are. ✨ Instant Instant is a social media actually un

Vincent Guillebaud 58 Dec 23, 2022
Free and Open Source, full-featured torrent client for Android

Free and Open Source, full-featured torrent client for Android

Yaroslav Pronin 1.3k Jan 8, 2023
Browse your memories without any interruptions with this photo and video gallery

Simple Gallery Simple Gallery Pro is a highly customizable lightweight gallery loved by millions of people for its great user experience. Organize and

Simple Mobile Tools 2.8k Jan 4, 2023
SnapChat-Clone - The android studio project for a snapchat clone for android devices

SnapChat-Clone This is the android studio project for a snapchat clone for andro

Ujjwal Sharma 0 Jan 30, 2022
Ankiconnect Android allows you to utilize the standard Anki mining workflow on Android devices like phones and eReaders

Ankiconnect Android Ankiconnect Android allows you to utilize the standard Anki mining workflow on Android devices like phones and eReaders. Create An

Kamron Bhavnagri 29 Dec 28, 2022
Ground Control Station for Android Devices

Tower Tower is a Ground Control Station (GCS) Android app built atop DroneKit-Android, for UAVs running Ardupilot software. Usage Guide The wiki has s

DroidPlanner 593 Dec 30, 2022
Ground Control Station for Android Devices

Tower Tower is a Ground Control Station (GCS) Android app built atop DroneKit-Android, for UAVs running Ardupilot software. Usage Guide The wiki has s

DroidPlanner 594 Jan 8, 2023
EBT Compass is a compass and GPS app for Android devices.

EBT Compass is a compass and GPS app for Android devices.

Eric Bergman-Terrell 6 Aug 25, 2022
Android library for finding connected devices on same WiFi network. It can provide IP Address, device name, MAC Address and vendor names.

Android WiFi Tools Android library for finding connected devices on the same WiFi network. It can provide IP Addresses, device names, MAC Address and

Tej Magar 5 Nov 16, 2022
Android samples built using Jetpack Window Manager for foldable and dual-screen devices like Microsoft Surface Duo.

Jetpack Window Manager samples for dual-screen and foldable devices like Microsoft Surface Duo Android app samples that use Jetpack Window Manager to

Microsoft 45 Dec 19, 2022