DebConf7/videoteam/Mixer

From Wiki
Jump to: navigation, search

[edit] Alioth project

Is at [1].

Do not renumber these requirements!

[edit] Requirements

  1. Essential
    1. The mixer must receive at least 2 real-time DV streams over a 100 Mbit/s (or faster) Ethernet network.
    2. A separate program must capture a DV stream from a camera over Firewire and send it using the appropriate protocol. (Initially the protocol is DIF over TCP/IP.)
    3. A separate program must read a DV stream from a file and send it using the appropriate protocol in real-time. (This will be needed during testing for simulation of a second camera.)
    4. The mixer must allow the operator to select between video streams.
    5. The mixer must display the selected video stream to the operator at full resolution and full frame rate, no more than about 250 ms after capture time. (Is this reasonable? We could stretch the latency requirement if the operator hears similarly delayed audio.)
    6. The mixer must display thumbnails of all received video streams to the operator at 10 fps, synchronised with the selected stream. These may be grayscale rather than colour.
    7. The mixer must take audio from the selected audio stream and video from the selected video stream. The selection of the audio stream can be static as we expect it to be mixed separately and fed to a single camera.
      1. The mixer or a separate program must write the resulting stream to files in a common format (probably DIF).
      2. The mixer or a separate program must send the resulting stream to a transcoder and client for live public streaming.
    8. The selection of the video stream must be visible in the output stream within about 100 ms after the frame displayed when the operator changes selection.
    9. The output audio stream must be identical to the received audio stream.
    10. The output video stream must be synchronised with the received video stream, to within 1 frame time. The received video frames may be dropped or doubled only where it is necessary to maintain synchronisation.
    11. The mixer must be controllable using only the keyboard. (We don't know whether there will be space for a mouse, and pressing a key is faster than using a mouse to press an on-screen button.)
    12. The mixer must allow the operator to make cuts, which will result in a new file being opened by the file writer.
  2. Desirable
    1. The mixer should receive DV streams over UDP/IP. (I believe TCP's slow recovery from dropped packets will not be acceptable.) This would imply we also need a new program to bridge between Firewire and Ethernet. This might be needed to meet requirement 1.2 but is not a requirement in itself.
    2. The mixer should handle arbitrary numbers of streams within processor limitations.
    3. The mixer should allow picture-in-picture mixing - one video stream full size and another scaled by a fixed amount and overlaid on one corner.
    4. The mixer should receive DV streams over IEEE 1394. (Since we could do this using the loopback interface instead of Ethernet, this would be an optimisation. It may be not be worthwhile.)
    5. The mixer should be able to send output DV stream to IEEE 1394. (Why? Perhaps to record onto a DV VTR? But we won't do that at DebConf, so this is a wishlist item.)
    6. The file reader should be able to loop
    7. The mixer should allow the operator to select the audio source and indicate which is selected
  3. Wishlist
    1. The mixer could allow fading between two video streams.
    2. The mixer could allow fading to a solid colour.
    3. The mixer could allow (sub)titles to be overlaid on the video stream.
    4. The mixer could allow the use of an ALSA audio input
    5. The mixer should be able to send output DV stream to IEEE 1394.

(What are the likely hardware specifications? We need to know these to tell whether we're really meeting the latency and frame rate requirements.)

Personal tools