-
-
Notifications
You must be signed in to change notification settings - Fork 83
Video processing workflow
This page is for designing the workflows using an ffmpeg-based video encoding solution. See the page on options for video for alternatives to using ffmpeg.
Options:
- Basic scenario: We record with the built-in media recorder. We reencode after the fact.
- Real-time version: We record to a socket like sipdroid which adds headers, then pass to ffmpeg for transcoding
- Chunked: Write short snippets to files (thus finalizing the headers) Transcode the chunks when finalized.
ffmpeg currently has a filter that does a fixed transformation. We need a filter that can do a dynamic transformation, passed through a socket or a file of metadata (generated based on manual annotation or automatic face detection). Ideally the filter would store encrypted redacted data for later redaction reversion.
Shawn's current implementation has ffmpeg as a standalone binary. Future versions could have a JNI wrapper to make calls directly.
Audio is currently just copied. In the future we might want to erase/obscure the audio.
In the future it would be good to redact the video file in the compressed domain to save memory, but most importantly decode/re-encode time. ffmpeg may provide access to the compressed stream.