coolstar / RecordMyScreen

Record the display even on non-jailbroken iPhones.
833 stars 218 forks source link

Added support for hardware accelerated audio compression (AAC format) #68

Closed Norod closed 7 years ago

Norod commented 10 years ago

Hello,

I know you are no longer maintaining this because other peeps plagiarised your work for profit :( But the Tweak you currently have in Cydia is awesome, yet it really lacks support for compressed Audio. Given that AAC compression can be done in Hardware and takes ~1/10 of the size of the currently used raw PCM, I think your tweak could benefit from selectively merging code from this pull request into the "Real thing".

To test my fork (from which this pull request was made), I built and deployed both 'org.coolstar.recordmyscreenapp' and 'org.coolstar.recordmyscreentweak' on a jailbroken device with iOS 7.1 Beta 3. As expected, the App could manage recorded videos and control the settings (but not record the screen while in background). The Tweak (activated by Activator) was properly recording the screen with AAC compressed audio. I could see the recording in the App and export it to "Camera Roll". For some reason, I was not able to see the "Tweak" preferences in "Settings" (Only in the App).

Anyway, I am rather new to Git & GitHub, I hope I'm doing it right :)

Please review my "Pull Request", I have done the following:

  1. Audio recorder now records to a compressed AAC format rather than raw uncompressed PCM
  2. So basically a mono recording of 1 minute at 64k kb/s will add ±480 kilo-bytes to the mov file, down from ±5 Mega-Bytes in PCM.
  3. Audio recording is now "On" by default (As the audio takes an order of ±10 times less than before)
  4. I believe the use case of this App would benefit more from a Mono being the default rather than Stereo
  5. Always record at the (hardware) preferred 44100 samples per second to provide the AAC encoder with the best "material" to work with (and avoid hardware level down-sampling)
  6. Let the user choose the AAC bitrate (32kb/s, 64kb/s, 96kb/s and 128kb/s). Given that mp4/AAC 128kb/s is equivalent to an mp3 file with a bit-rate of 192kb/s, it should be a good upper-limit.
  7. The recorder object will get and keep the "Should record audio?" boolean at "start". In case it is set to "No", the microphone will not be opened, and an audio file will not be mixed in.
  8. Took care of some warnings due to "Deprecated" methods in iOS 6
  9. Added an entry to the credits

Best Regards, Doron Adler

Norod commented 7 years ago

Obsolete