that comes with Futatabi), it is capable of sending all of its cameras as one
video stream (see :ref:`futatabiformat`), so you can start Futatabi with
- ./futatabi http://path.to.nageru.host/multicam.mp4
+ ./futatabi http://nageru-server.example.org/multicam.mp4
If you do not have a running Nageru installation, see :ref:`sampledata`.
recorded frames, all metadata about clips, and preferences set from the menus
(interpolation quality and cue point padding). If you quit Futatabi and
restart it (or you go down as the result of a power failure or the likes),
-it will remember all the state and frames for you.
+it will remember all the state and frames for you. As a special case,
+if you give */dev/null* in place of an input URL or file, you can keep using
+your workspace without getting any new frames added.
.. _basicui:
click the “Play” button (space on the keyboard); the result will both be
visible in the top screen and go out live over the network to Nageru.
+.. _speed:
+
+Controlling the playback speed
+''''''''''''''''''''''''''''''
+
.. _coop:
Working with your producer
Futatabi will simply output the received JPEG frame directly to the output
stream, which can be a different resolution from the interpolated frames.
+Also, even though Futatabi exists to make a fixed-framerate stream out of
+something that's not, the output stream can be variable-framerate (VFR) due to
+pauses and frame drops. In particular, when the stream is paused, frames are
+only output about every 100 milliseconds.
+
Finally, the subtitle track with status information (see :ref:`talkback`) is
not marked as metadata due to FFmpeg limitations, and as such will show up
raw in subtitle-enabled players.
Tally and status talkback
'''''''''''''''''''''''''
+In addition to the verbal communication between the two operators
+(see :ref:`coop`), it is also useful to have automatic communication
+between Nageru and Futatabi. This goes both ways.
+
+First, Futatabi can consume :ref:`Nageru's tally data <tally>` like any camera
+can; give the correct channel URL to *--tally-url* on the Futatabi command line,
+and the color around the live view will show up when you are ready or playing
+(e.g. *--tally-url http://nageru-server.example.org:9096/channels/2*).
+
+Second, Futatabi can export its current status in two ways. The simplest is
+through a REST call; the HTTP server that exposes the stream also exposes
+the endpoint */queue_status* (e.g. http://futatabi-server.example.org:9096/queue_status).
+This contains the same text as is below the live window, ie., how much time
+is queued or left.
+
+The same status is also exported programmatically in the video output from
+Futatabi, as a subtitle track. This allows the Nageru theme not only to display
+it if desired, but even to act automatically to switch to a different channel
+when the playlist is nearing its end. (See :ref:`subtitle-ingest` for information
+on how to digest such information from the Nageru side.)
+
+Each subtitle entry is displayed momentarily before the frame it belongs to,
+and has the following format:
+
+ Futatabi 1.8.2;PLAYING;6.995;0:06.995 left
+
+The semicolon-separated columns are as follows:
+
+ * The first column is the identifier for the Futatabi version in use; if the format
+ should ever diverge between versions, it can serve as a way to distinguish between
+ them if needed. (The version may also change without the format changing.)
+ For now, however, you can ignore it.
+ * The second column is either PLAYING or PAUSED, depending on the current status.
+ * The third column is how many seconds is queued up (PAUSED) or remaining (PLAYING).
+ It is always in C locale, no matter what the user has set (ie., the decimal point
+ will always be a period). Note that this does not take into account the master
+ speed (see :ref:`speed`).
+ * Finally, the fourth column is a human-readable string, the same as is exposed
+ on the /queue_status endpoint above.
+
Prometheus metrics
''''''''''''''''''