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