August'24: Kamaelia is in maintenance mode and will recieve periodic updates, about twice a year, primarily targeted around Python 3 and ecosystem compatibility. PRs are always welcome. Latest Release: 1.14.32 (2024/3/24)

Project Task Page: MobileReframer

Description

Status: Blocked - awaiting demonstration server to install onto
Current Developers:
Matt
Current "inflight" dev location:
/Sketches/MH/MobileReframe
Start Date:
12 October 2006
Major Milestone date:
--
Expected End Date:
5 December 2006
End Date:
---
Date this page last updated:
30 November 2006
Estimated effort so far:
21.25

The aim is to create a back-end tool that decodes a video clip; applies edit decisisions (cutting, cropping and scaling); and re-encodes it. The idea is to cut and crop video to make it suitable for playback on a small screen mobile device.

This will slot in as a back-end for a web based video reframing internal BBC demonstrator. A flash based web front end will be used to generate the edit decision list as XML data. This reframer tool will then be run by the server to apply those edit decisions to a video clip. A user will be able to upload a video; reframe it using the front end; then download the reframed video.

Benefits include:

Inputs

Task Sponsor: SJ (BBC internal)
Task Owner: Matt (MH)
Developers:

Users:

Interested Third Parties:

Requirements (non exhaustive):

Relevant Influencing factors:

Outputs

Expected

Code in /Sketches

New Video processing components

New Video and Audio file parsing and writing components

New XML parsing components

Experimental modifications to existing components to handle noSpaceInBox exceptions

Webpages describing:

Feature in presentation to Mobile SIG (BBC internal)

Actual

Code

Mobile reframer specific:

/Sketches/MH/MobileReframe/MobileReframer.py

Video components

/Sketches/MH/Video/YUV4MPEG.py

/Sketches/MH/Video/CropAndScale.py

Audio components:

/Sketches/MH/audio/WAV.py

/Sketches/MH/audio/ToWAV.py

General purpose components:

/Sketches/MH/MobileReframe/TagWithSequenceNumber.py

/Sketches/MH/MobileReframe/OneShot.py

/Sketches/MH/MobileReframe/PromptedTurnstile.py

/Sketches/MH/MobileReframe/FirstOnly.py

/Sketches/MH/MobileReframe/Chunk.py

/Sketches/MH/MobileReframe/Sync.py

/Sketches/MH/MobileReframe/Collate.py

/Sketches/MH/MobileReframe/RangeFilter.py

/Sketches/MH/MobileReframe/Max.py

Chassis-style components:

/Sketches/MH/MobileReframe/InboxControlledCarousel.py

/Sketches/MH/MobileReframe/Chassis.py

/Sketches/MH/MobileReframe/Seq.py

Process components:

/Sketches/MH/MobileReframe/UnixProcess.py

XML components:

/Sketches/MH/MobileReframe/SAXPromptedParser.py

Webpages

Realistic possibilities arising as a result of activity on this task

New components for the mainline codebase

Writing a video player able to play anything that ffmpeg/mencoder/other tools can play

Tasks that directly enable this task (dependencies)

Sub Tasks

Modifying/rewriting UnixProcess to:

not throw away data

support named pipes for input and output

to allow rate limiting by boxes becoming full

Writing components

Deployment onto demonstration server


Task Log

Discussion

Coping with size limited boxes: