TPEPlatform/MediaRecorder
From MozillaWiki
Summary
We already have mozCamera for take photo or video recording. mozCamera itself is not part of any standard web spec, which means
- It works on Firefox platform only.
- Totally isolate in media world. There is no way to connect data stream from mozCamera with media processing module, such as WebAudio, or recording module, such as MediaRecorder.
MediaRecorder takes media stream, which may come from web audio or media source or user media, as input. User may process all these media streams before recording. In mozCamera, there is nothing that user can do between capturerer and recorder, except canned video effect.
To totally replace mozCamera, we need to support these three WebAPI
- MediaRecorder: replace video recording function in mozCameraControl
- ImageCapture: replace takePhoto function in mozCameraControl
- CameraControl: except the first two function, we still need an API to control camera for 3A/ Zoom/ etc..
On B2G, there are two strategies
- B2G 1.3 on JerryBean: Base on JB::MediaCodec, we will support OmxVideoTrackEncoder and OmxAudioTrackEncoder to leverage HW encoder.
- B2G 1.3 on ICS: in this case, we still use VP8 and WebM.
Tracking Issues
META bugs for Encoding framework:
Bug No | Description |
bug 803414 | MediaRecorder WebAPI |
bug 879688 | MediaEncoder pipeline |
bug 888177 | ImageCapture WebAPI |
Main tracking issues
Bug No | Description | Statue | Assigned |
bug 842243 | Audio encoding path | FIXED | Shelly |
bug 919905 | Refactor encoder architecture to support the video encoder module | FIXED | Randy |
BLOCKER: bug 879669 | Video encoding path | Open | Randy |
bug 891705 | WebM 1.0 container writer | Open | Randy |
bug 883749 | Vorbis encoding | Open | Benjamin |
bug 881840 | VP8 encoding | Open | Randy |
bug 879668 | VideoOmxEncoder encoding | Open | Shelly, John |
bug 920934 | AudioOmxEncoder encoding | Open | Shelly, John |
bug 891704 | MP4Writer container writer | Open | Alfredo |
Testing Plan
- Jason Smith: https://etherpad.mozilla.org/media-recording-testing
Bug No | Description | Statue | Target | Assigned |
bug 889772 | Audio Recording - Marionette Test Case | Open | Gecko 25 | Randy Lin |
TBD | Video Recording - Marionette Test Case | Open | Gecko 26 | Randy Lin |
Schedule
Type | Milestone | Target | Platform | Assignee |
Audio | Opus | Gecko 24 | All | Shelly |
Vorbis | Gecko 28 | All | Benjamin | |
OmxAudio | B2G 1.3 | B2G 1.3 with Android Jerry Bean | Shelly | |
|
|
|
| |
|
|
|
| |
Video | OmxVideo | B2G 1.3 | B2G 1.3 with Android Jerry Bean | Shelly Lin, John Lin |
VP8 | Gecko 28 | All | Randy Lin, Benjamin Chen | |
VP9 | TBD | TBD |
Reference
- Meeting Minutes
- Mail thread
- GetUserMedia Spec
- MediaStream Recording Spec
- Image Capture Spec
- HTML media capture (only supports simple capture functionalities), associated bug bug 741393
- Android JB encoder matrix
- iOS encorder matrix
- Firefox playback format
- VP9 Goolge I/O event
- Why VP8 should be that codec? (rtcweb-vp8-01)
- H.264 as Mandatory to Implement Video Codec for WebRTC
- H.264/AVC as Mandatory-to-Implement Video Codec for RTCweb