1 Nageru and Futatabi 2.2.3, July 24th, 2023
3 - Fix startup crashes with newer libsrt.
5 - Fix an issue where checkable theme menus would get the wrong
6 starting state. Reported by Stefano Rivera.
9 Nageru and Futatabi 2.2.2, July 15th, 2023
11 - Fix build breaks with newer GCC and SVT-AV1.
14 Nageru and Futatabi 2.2.1, April 17th, 2023
16 - Work around an issue with OpenGL on Wayland, causing all
19 - Several fixes related to video inputs; in particular:
20 - Fix crashes when the master clock goes faster than 60 Hz
21 (which could happen primarily if an SRT input is the master).
22 - Be more resilient to errors in hardware video decoding
23 when the stream starts out broken (e.g., not on a key frame)
25 - Multiple fixes related to hardware acceleration on nVidia.
26 - Incoming frames of too high resolution (larger than 8 MB)
27 will be refused instead of crashing. Such videos may be
28 supported better in the future.
31 Nageru and Futatabi 2.2.0, November 15th, 2022
33 - Support AV1 output, via SVT-AV1. Note that this is still somewhat
34 experimental, not the least because SVT-AV1's streaming support
35 is not as mature as x264.
37 - Remove the dependency on QCustomPlot.
39 - Expose BlurEffect and UnsharpMaskEffect to the theme.
41 - Clean up several rarely-unused command-line flags:
42 - All the 10-bit flags are now collapsed to --10-bit.
43 - Remove --http-uncompressed-video.
44 - Remove the x264 VBV flags.
45 - Hide --x264-speedcontrol-verbose.
46 - Hide --no-flush-pbos.
48 - Make a workaround for audio monitoring output under PipeWire.
50 - Update CEF compatibility (tested with CEF 107).
53 Nageru and Futatabi 2.1.0, February 6th, 2022
55 - Support unsynchronized HDMI/SDI output.
57 This is for if you want just a monitor output without synchronizing
58 your entire stream chain to the output card (ie., you want to keep
59 some other camera as the master). Sound support is untested, and is
60 probably going to crackle a fair bit.
62 There's no GUI support for changing this currently (you enable it
63 by using --output-card-unsynchronized and then using HDMI/SDI output
66 - Support sending a separate x264 encode to disk
67 (--separate-x264-disk-encode and associated --x264-separate-disk-*
70 This is useful for machines that don't have Quick Sync, but where
71 you want to have an archival copy on disk in higher quality
72 than what you streamed out.
74 - Fix compilation issues with FFmpeg 5.0.
77 Nageru and Futatabi 2.0.2, September 3rd, 2021
79 - Fix issues with various upstream software:
80 DeckLink 11.7 (and newer) drivers, FFmpeg 4.4, newer CEF.
82 - Add a --no-transcode-video flag to Kaeru.
84 This is useful primarily if you want Kaeru to rewrap the stream into
85 Metacube (for Cubemap) and do nothing else with it. Only H.264
86 is supported for now, since everything else assumes that.
89 Nageru and Futatabi 2.0.1, July 9th, 2020
91 - Upgrade DeckLink SDK to 10.11.4.
96 Nageru and Futatabi 2.0.0, June 2nd, 2020
98 - Native support for SRT inputs; by default, Nageru will listen
99 for incoming connections on port 9710 and treat them as hotplugged
100 cameras. They do not need any special handling in the theme,
101 and can pick up e.g. the SRT stream ID to be used in the UI.
102 They generally have fewer limitations than using an srt:// URL
103 on an FFmpeg capture; e.g., there is no forced scaling, and they
104 can be used as master clock (although this is not generally
107 For license reaseons, please be sure that libsrt does not link to
108 OpenSSL when building Nageru.
110 - You do no longer need to set up a fixed amount of capture cards
111 at startup; by default, at least two will be created for you
112 (fake capture cards) as before, but if you have more, or hotplug
113 more, more slots will be automatically available, and will go
114 away (not take up any resources like fake capture cards do)
115 when unplugged. If you wish to artificially limit the maximum
116 number of cards like before, you can use the new switch
119 - MJPEG handling now includes 4:2:0 support in both Nageru and
120 Futatabi, as SRT inputs are often 4:2:0 and not 4:2:2.
122 - FFmpeg capture cards (including SRT cards) now use VA-API
123 hardware acceleration for decoding whenever available.
126 Nageru and Futatabi 1.9.3, April 12th, 2020
128 - Support (video-only) V4L2 output. The intended use case is output into
129 v4l2loopback to get into videoconferencing or the likes:
131 sudo apt install v4l2loopback-dkms
132 sudo modprobe v4l2loopback video_nr=2 card_label='Nageru loopback' max_width=1280 max_height=720 exclusive_caps=1
133 nageru --v4l-output /dev/video2
135 Start Nageru before any readers.
138 Nageru and Futatabi 1.9.2, March 29th, 2020
140 - Support handling white balance directly in Nageru, without themes
141 manually inserting a WhiteBalanceEffect or handling set_wb().
142 To use it, call scene:add_white_balance() instead of
143 scene:add_effect(WhiteBalanceEffect.new()). If using this functionality,
144 white balance will be properly propagated to the MJPEG feed and
145 through Futatabi, so that replays get the correct white balance.
146 Futatabi's UI will still be uncorrected, though.
148 - Make it possible to siphon out a single MJPEG stream, for remote
149 debugging, single-camera recording, single-camera streaming via
150 Kaeru or probably other things. The URL for this is /feeds/N.mp4
151 where N is the card index (starting from zero).
153 - The theme can now access some audio settings; it can get (not set)
154 number of buses and names, get/set fader volume, get/set mute,
155 and get/set EQ parameters.
157 - In Futatabi, it is now possible to set custom source labels, with
158 the parameter --source-label NUM:LABEL (or -l NUM:LABEL).
160 - When the playback speed changes in Futatabi, ease into the new speed.
161 The easing period is nominally 200 ms, but it will be automatically
162 shortened or lengthened (up to as much as two seconds in extreme
163 cases, especially involving very slight speed change) if this
164 helps getting back into a cadence of hitting the original frames.
165 This can mean significant performance improvements when ramping
166 from higher speeds back into 100%.
168 - Updates for newer versions of CEF (tested with Chrome 80).
170 - Various bugfixes and performance improvements.
173 Nageru and Futatabi 1.9.1, November 17th, 2019
175 - Support disabling optional effects if a given other effect is _enabled_
176 (typically for mutually exclusive effects).
178 - Make it possible for the theme to override the status line, by declaring
179 a function format_status_line() in the theme. Inspired by a C++ patch by
180 Alex Thomazo in the Breizhcamp repository.
185 Nageru and Futatabi 1.9.0, July 20th, 2019
187 - Significant reworking of the theme engine: Chains (now called scenes)
188 can now instantiate different versions behind-the-scenes instead of the
189 user having to worry about input types, low/high quality, or replacing
190 effects with others. Menus can have submenus and checkboxes. Finally, some
191 callbacks, such as num_channels(), have been replaced with easier-to-use
192 imperative functions, ie., an explicit call to Nageru.set_num_channels(N).
194 See the documentation for more information, or the included themes,
195 which have been ported to the new interfaces. Existing themes will continue
196 to run without modification, but the old interfaces are deprecated.
198 Martin Sandsmark contributed a bugfix to this work.
200 - Support cross-compilation. Patch from Helmut Grohne.
202 - Kaeru now has a parameter --disable-audio for transcoding streams
205 - Various bugfixes. In particular, work around an issue where Mesa's shader
206 cache interacts with Qt's EGL support to create a confusing crash with
207 “vertex shader lacks `main'”.
210 Nageru and Futatabi 1.8.6, April 19th, 2019
212 - Filenames for the recordings are now without colons; it caused
213 too much problems with various software, including most players.
218 Nageru and Futatabi 1.8.5, March 30th, 2019
220 - Experimental support for audio in Futatabi: The MJPEG export from
221 Nageru now supports audio, and Futatabi will store it and play it
222 back. Audio is currently only supported when playing at 100% speed
223 (no pitch shift or time stretching), and there is no audio output
224 to the Futatabi operator.
226 - Significant optimizations to MJPEG encoding, both when in use and when
232 Nageru and Futatabi 1.8.4, March 11th, 2019
234 - Various bugfixes, in particular for 32-bit platforms.
237 Nageru and Futatabi 1.8.3, March 10th, 2019
239 - Allow controlling video mixing from MIDI events. Adapted from a patch
240 by Yann Dubreuil, from the BreizhCamp repository.
242 - Use ALSA hardware timestamps for input; gives more stable delay.
243 Patch by Yann Dubreuil, from the BreizhCamp repository.
245 - For FFmpeg inputs, add an option for playing as fast as possible
248 - In Futatabi, support queueing and playing clips with no cue-out point.
249 This opens up for new and even faster UI workflows.
254 Nageru and Futatabi 1.8.2, January 19th, 2019
256 - Futatabi now supports MIDI controllers like Nageru, including an editor
257 and a sample mapping for the Behringer CMD PL-1.
259 - Futatabi now supports changing master speed during play, both via a
260 MIDI controller and the GUI.
265 Nageru and Futatabi 1.8.1, December 30th, 2018
267 - Futatabi can now communicate its queue status through a subtitle track,
268 and Nageru can consume it. This allows Nageru themes to get precise
269 information programmatically, e.g. to show status or automatically
270 switch away when the queue is about to end.
272 - Futatabi can now reuse the computed flow across successive frames when
273 interpolating between the same frame pair. This significantly reduces
274 the GPU load when doing super-slow motion (slower than 0.5x).
276 - Various smaller fixes.
279 Nageru and Futatabi 1.8.0, December 20th, 2018
281 - Initial release of Futatabi, a multicamera slow motion video server
282 designed to be used with Nageru. Futatabi is currently in alpha stage
283 and largely undocumented.
285 - Add support for multi-camera export from Nageru. A multi-camera stream
286 contains all frames from all camera inputs (unless overridden by
287 --mjpeg-export-cards), unprocessed except for MJPEG encoding.
288 MJPEG encoding is done in hardware (via VA-API) on Skylake or newer,
289 or using libjpeg otherwise. The intended user of this stream is Futatabi.
292 Nageru 1.7.5, November 11th, 2018
294 - Fix a bug where --record-x264-video would not work when VA-API was
295 not present, making the option rather useless (broken in 1.7.2).
296 Bug reported by Peter De Schrijver.
298 - The build system has been switched to Meson; see the README for new
301 - Various smaller fixes.
304 Nageru 1.7.4, August 31st, 2018
306 - Rework the x264 speedcontrol presets, again. (They earlier assumed
307 we could control B-frame settings on the fly, which we cannot with
308 threaded lookahead.) Also support x264 >= 153, which can support
309 multiple bit depths in the same library.
311 - Default to SDI inputs instead of HDMI.
313 - Add a mode to run in full screen (--fullscreen). Adapted from a patch
316 - Add support for lift/gamma/gain in the theme. Patch by Alexandre Thomazo.
319 Nageru 1.7.3, May 22nd, 2018
321 - When using multichannel audio, add a control for adjusting the
322 stereo width (from normal stereo to mono, all the way to
325 - Removed --http-coarse-timebase (it is now always on).
330 Nageru 1.7.2, April 28th, 2018
332 - Several improvements to video (FFmpeg) inputs: You can now use
333 them as audio sources, you can right-click on video channels
334 to change URL/filename on-the-fly, themes can ask for forced
335 disconnection (useful for network sources that are hanging),
336 and various other improvements. Be aware that the audio support
337 may still be somewhat rough, as A/V sync of arbitrary video
338 playout is a hard problem.
340 - The included themes have been fixed to properly make the returned
341 chain preparation functions independent of global state (e.g. if
342 the white balance for a channel was changed before the frame was
343 actually rendered). If you are using a custom theme, you may want
344 to apply similar fixes to it.
346 - In Metacube stream output, mark each keyframe with a pts metadata
347 block. This allows Cubemap 1.4.0 or newer to serve fMP4 fragments
348 for HLS from Nageru's output, without any further remuxing or
351 - If needed, Nageru will now automatically try to autodetect a
352 usable --va-display parameter by probing all DRM nodes for H.264
353 encoders. This removes the need to set --va-display in almost all
354 cases, and also removes the dependency on libpci.
356 - For GPUs that support querying available memory (in practice only
357 NVIDIA GPUs at the current time), expose the amount of used/total
358 GPU memory both on standard output and in the Prometheus metrics
359 (as well as included Grafana dashboard).
361 - The Grafana dashboard now supports heatmaps for the chosen x264
362 speedcontrol preset (requires Grafana 5.1 or newer). (There used to
363 be a heatmap earlier, but it was all broken.)
368 Nageru 1.7.1, March 26th, 2018
370 - Various bugfixes, mostly related to HTML and video inputs.
373 Nageru 1.7.0, March 8th, 2018
375 - Support for HTML5 graphics directly in Nageru, through CEF
376 (Chromium Embedded Framework). This performs better and is more
377 flexible than integrating with CasparCG over a socket. Note that
378 CEF is an optional component; see the documentation for more
381 - Add an HTTP endpoint for enumerating channels and one for getting
382 only their colors. Intended for remote tally applications;
383 set the documentation.
385 - Add a video grid display that removes the audio controls and shows
386 the video channels only, potentially in multiple rows if that makes
387 for a larger viewing area.
389 - Themes can now present simple menus in the Nageru UI. See the
390 documentation for more information.
395 Nageru 1.6.4, January 25th, 2018
397 - Fix compilation with the upcoming FFmpeg 3.5.
399 - Switch to LuaJIT for the theme engine, which is faster.
401 - Various bugfixes and smaller optimizations.
404 Nageru 1.6.3, November 8th, 2017
406 - Add quick-cut keys (Q, W, E, etc.) below the preview keys.
407 Since it's easy to hit these by accident and put up a signal
408 you didn't want, they are disabled by default (they can be
409 enabled in the video menu, or with the command line flag
412 - Rework the x264 speedcontrol presets to better match newer
415 - Add an option for changing the HTTP port (--http-port).
417 - Various smaller bug and integration fixes.
420 Nageru 1.6.2, July 16th, 2017
422 - Various smaller Kaeru fixes, mostly around metrics. Also,
423 you can now adjust the x264 bitrate in Kaeru (in 100 kbit/sec
424 increments) by sending SIGUSR1 (higher) or SIGUSR2 (lower).
427 Nageru 1.6.1, July 9th, 2017
429 - Add native export of Prometheus metrics.
431 - Rework the frame queue drop algorithm. The new one should handle tricky
432 situations much better, especially when a card is drifting very slowly
433 against the master timer.
435 - Add Kaeru, an experimental transcoding tool based on Nageru code.
436 Kaeru can run headless on a server without a GPU to transcode a
437 Nageru stream into a lower-bitrate one, replacing VLC.
439 - Work around a bug in some versions of NVIDIA's OpenGL drivers that would
440 crash Nageru after about three hours (fix in cooperation with Movit).
442 - Fix a crash with i965-va-driver 1.8.x.
444 - Reduce mutex contention in certain critical places, causing lower tail
445 latency in the mixer.
448 Nageru 1.6.0, May 29th, 2017
450 - Add support for having videos (from file or from URL) as a separate
451 input channels, albeit with some limitations. Apart from the obvious use of
452 looping pause clips or similar, this can be used to integrate with CasparCG;
453 see the manual for more details.
455 - Add a frame analyzer (accessible from the Video menu) containing an
456 RGB histogram and a color dropped tool. This is useful in calibrating
457 video chains by playing back a known signal. Note that this adds a
458 dependency on QCustomPlot.
460 - Allow overriding Y'CbCr input interpretation, for inputs that don't
461 use the correct settings. Also, Rec. 601 is now used by default instead
462 of Rec. 709 for SD resolutions.
464 - Support other sample rates than 48000 Hz from bmusb.
467 Nageru 1.5.0, April 5th, 2017
469 - Support for low-latency HDMI/SDI output in addition to (or instead of) the
470 stream. This currently only works with DeckLink cards, not bmusb. See the
471 manual for more information.
473 - Support changing the resolution from the command line, instead of locking
474 everything to 1280x720.
476 - The A/V sync code has been rewritten to be more in line with Fons
477 Adriaensen's original paper. It handles several cases much better,
478 in particular when trying to match 59.94 and 60 Hz sources to each other.
479 However, it might occasionally need a few extra seconds on startup to
480 lock properly if startup is slow.
482 - Add support for using x264 for the disk recording. This makes it possible,
483 among other things, to run Nageru on a machine entirely without VA-API
486 - Support for 10-bit Y'CbCr, both on input and output. (Output requires
487 x264 disk recording, as Quick Sync Video does not support 10-bit H.264.)
488 This requires compute shader support, and is in general a little bit
489 slower on input and output, due to the extra amount of data being shuffled
490 around. Intermediate precision is 16-bit floating-point or better,
493 - Enable input mode autodetection for DeckLink cards that support it.
494 (bmusb mode has always been autodetected.)
496 - Add functionality to add a time code to the stream; useful for debugging
499 - The live display is now both more performant and of higher image quality.
501 - Fix a long-standing issue where the preview displays would be too bright
502 when using an NVIDIA GPU. (This did not affect the finished stream.)
504 - Many other bugfixes and small improvements.
507 Nageru 1.4.2, November 24th, 2016
509 - Fix a thread race that would sometimes cause x264 streaming to go awry.
512 Nageru 1.4.1, November 6th, 2016
517 Nageru 1.4.0, October 26th, 2016
519 - Support for multichannel (or more accurately, multi-bus) audio,
520 choosable from the UI or using the --multichannel command-line
521 flag. In multichannel mode, you can take in inputs from multiple
522 different sources (or different channels on the same source, for
523 multichannel sound cards), apply effects to them separately and then
524 mix them together. This includes both audio from the video cards
525 as well as ALSA inputs, including hotplug. Ola Gundelsby contributed
526 invaluable feedback on this feature throughout the entire
529 - Support for having MIDI controllers control various aspects of the
530 audio UI, with relatively flexible mapping. Note that different
531 MIDI controllers can vary significantly in what protocol they speak,
532 so Nageru will not necessarily work with all. (The primary testing
533 controller has been the Akai MIDImix, and a pre-made mapping for
534 that is included. The Korg nanoKONTROL2 has also been tested and
535 works, but it requires some Korg-specific SysEx commands to make
536 the buttons and lights work.)
538 - Add a disk space indicator to the main window.
540 - Various bugfixes. In particular, an issue where the audio would pitch
541 up sharply after a series of many dropped frames has been fixed.
544 Nageru 1.3.4, August 2nd, 2016
549 Nageru 1.3.3, July 27th, 2016
551 - Various changes to make distribution packaging easier; in particular,
552 theme data can be picked up from /usr/local/share/nageru.
554 - Fix various FFmpeg deprecation warnings, now that we need FFmpeg
555 3.1 for other reasons anyway.
558 Nageru 1.3.2, July 23rd, 2016
560 - Allow limited hotplugging (unplugging and replugging) of USB cards.
561 You can use the new command-line option --num-fake-cards (-C) to add
562 fake cards that show only a single color and that will be replaced
563 by real cards as you plug them in; you can also unplug cards and have
564 them be replaced by fake cards. Fake cards can also be used for testing
565 Nageru without actually having any video cards available.
567 - Add Metacube timestamping of every keyframe, for easier detection of
568 streams not keeping up. Works with the new timestamp feature of
569 Cubemap 1.3.1. Will be ignored (save for some logging) in older
572 - The included default theme has been reworked and cleaned up to be
573 more understandable and extensible.
575 - Add more command-line options for initial audio setup.
578 Nageru 1.3.1, July 1st, 2016
580 - Various display bugfixes.
583 Nageru 1.3.0, June 26th, 2016
585 - It is now possible, given enough CPU power (e.g., a quad-core Haswell or
586 faster desktop CPU), to output a stream that is suitable for streaming
587 directly to end users without further transcoding. In particular, this
588 includes support for encoding the network stream with x264 (the stream
589 saved to disk is still done using Quick Sync), for Metacube framing (for
590 streaming to the Cubemap reflector), and for choosing the network stream
591 mux. For more information, see the README.
593 - Add a flag (--disable-alsa-output) to disable ALSA monitoring output.
595 - Do texture uploads from the main thread instead of from separate threads;
596 may or may not improve stability with NVIDIA's proprietary drivers.
598 - When beginning a new video segment, the shutdown of the old encoder
599 is now done in a background thread, in order to not disturb the external
600 stream. The audio still goes into a somewhat random stream, though.
602 - You can now override the default stream-to-card mapping with --map-signal=
605 - Nageru now tries to lock itself into RAM if it has the permissions to do
606 so, for better realtime behavior. (Writing the stream to disk tends to
607 fill the buffer cache, eventually paging less-used parts of Nageru out.)
609 - Various fixes for deadlocks, memory leaks, and many other errors.
612 Nageru 1.2.1, April 15th, 2016
614 - Images are now updated from disk about every second, so that it is possible
615 to update e.g. overlays during streaming, although somewhat slowly.
617 - Fix support for PNG images.
619 - You can now send SIGHUP to start a new cut instead of using the menu.
621 - Added a --help option.
623 - Various tweaks to OpenGL fence handling.
626 Nageru 1.2.0, April 6th, 2016
628 - Support for Blackmagic's PCI and Thunderbolt cards, using the official
629 (closed-source) Blackmagic drivers. (You do not need the SDK installed, though.)
630 You can use PCI and USB cards pretty much interchangeably.
632 - Much more stable handling of frame queues on non-master cards. In particular,
633 you can have a master card on 50 Hz and another card on 60 Hz without getting
634 lots of warning messages and a 10+ frame latency on the second card.
636 - Many new options in the right click menu on cards: Adjustable video inputs,
637 adjustable audio inputs, adjustable resolutions, ability to select card for
640 - Add support for starting with almost all audio processing turned off
643 - The UI now marks inputs with red or green to mark them as participating in
644 the live or preview signal, respectively. Red takes priority. (Actually,
645 it merely asks the theme for a color for each input; the theme contains
648 - Add support for uncompressed video instead of H.264 on the HTTP server,
649 while still storing H.264 to files (--http-uncompressed-video). Note that
650 depending on your client, this might not actually be more CPU efficient
651 even on localhost, so be sure to check.
653 - Add a simpler, less featureful theme (simple.lua) that should be easier to
654 understand for beginners. Themes are now also choosable with -t on the command
657 - Too many bugfixes and small tweaks to list. In particular, many memory leaks
658 in the streaming part have been identified and fixed.
661 Nageru 1.1.0, February 24th, 2016
663 - Support doing the H.264 encoding on a different graphics device from the one
664 doing the mixing. In particular, this makes it possible to use Nageru on an
665 NVIDIA GPU while still encoding H.264 video using Intel Quick Sync (NVENC
666 is not supported yet) -- it is less efficient since the data needs to be read
667 back via the CPU, but the NVIDIA cards and drivers are so much faster that it
668 doesn't really matter. Tested on a GTX 950 with the proprietary drivers.
670 - In the included example theme, fix fading to/from deinterlaced sources.
672 - Various smaller compilation, distribution and documentation fixes.
675 Nageru 1.0.0, January 30th, 2016