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