This replaces the previous Open File dialog for importing collections
with a window for importing many collections at once, based on the remux
window, along with support for importing from OBS Classic, XSplit
Broadcaster and from Streamlabs' fork. This also translates sources
between OSes that Studio supports.
Follow up to #2145: https://github.com/obsproject/obs-studio/pull/2145
The wizard has a stream link URL as well, adding the button in the
wizard to match. Additionally, fixing a few errors in the UI layout
and spacing where items were not padded.
Adds an option to the right click menu in the scenes widget to switch
modes. When in regular list mode, it'll let you select grid mode, and in
grid mode, it'll let you select list mode. Grid mode changes the scenes
widget to have a grid of buttons for scenes rather than a list, much
like XSplit.
Both BTTV and FFZ are fairly popular however they do occasionally
interfere. To give users the option to chose whichever one they like
most we add a new setting that allows BTTV, FFZ, both, or neither.
Defaults to "None" for new users. Existing users will be migrated to
"Both" as that's the previous behavior.
Most of the top streaming services now have a link in the stream key
label. Upgrading this button to a button clarifies the assistance
for the important step of setting up a stream.
Creates a new type of button for URL opening simply which also
automatically updates the tootip to the current URL.
Includes addition of Twitter/Periscope URL to make this feature more
complete.
This reverts commit b5843caa48.
This breaks some hotkeys because the signals are tied to a signal which
is now triggered because "toggled" is used instead of "clicked", so just
revert it for now for the release and look at it later post-patch.
This commit fixes various issues with screen readers in the main OBS
interface. These were tested using NVDA on Windows 10 1903.
Checkboxes or buttons which toggle, when receiving an activate signal
from the screen reader would visually update, but not perform any
action. This is because they're listening only for clicks. They should
all now be listening for toggles instead.
The screen reader would navigate through the UI in the order that
elements are defined in the .ui XML, and not by their row positions.
The XML has been reordered so that things should be defined in their row
order.
Audio track selection now says Track 1, 2, etc, rather than just the
number. Various checkboxes that just say "Enable" now have accessible
text that says what the enable is for (since it says "checkbox", the
fact it's an enable should hopefully be clear). Type in the recording
tab of output now has accessible text which says "Recording Type".
All the right side buttons in hotkeys now have tooltips, and by
extension, accessible text. Currently it does not yet say what hotkey
the action is in relation to, but that would require more locales.
Allows the ability for users to add custom browser widget docks that
they can use for their third party services if they feel the need,
mostly as a convenience tool so they don't have to open extra browsers
alongside the program.
OBS has an option to warn before stopping a stream, but it doesn't have
a similar warning for recording. This can result in a recording being
unintentionally stopped.
Add an option to warn when the "Stop Recording" button is pressed.
Note: While OBS also has an option to warn on stream start, this
patch purposefully does not add similar warn on recording start option.
This is because accidentally starting to record isn't risky in the same
way that accidentally starting to stream is.
Adds support for pausing recordings. When settings are eligible for
recordings, a pause button will appear next to the recording button. If
the settings are not eligible, it will warn the user in the output
settings that they cannot pause recordings if those settings are used.
This changes all of the icons from png to svg. With svgs, scaling is
unlimited. With the svgs, the issue of the @ symbols with the Windows
updater is no longer an issue.
I changed the colors of the icons to a light gray (#d2d2d2), in the
dark themes, because I thought they looked better with this color.
The mute, unmute, plus, minus, up, down and expand icons are from the
Feather Icons set. https://feathericons.com/
The visibility icon is from the Octicons set. https://octicons.github.com/
The locked and unlocked icons are from the Open Iconic set.
https://github.com/iconic/open-iconic
- Now uses a QVBoxLayout with a QScrollArea for the container
- Uses QGroupBox for each section
- Moved Monitoring and ducking settings out of the Advanced tab
- Push-to hotkeys are no longer in a child scroll area
- Renamed device labels for consistency
Users don't realize that dockable windows can be closed (hidden) and can
be shown again via the View menu. This adds an explicit warning when
the user first closes a dockable window for their first time. In future
versions, this should be changed to a dialog box with a "Do not show
again" checkbox.
This was a feature that was available when you chose custom RTMP server;
it was not considered when making the new version. Note: it looks
unslightly, but it works for now.
Adds the ability to connect/login to an account via the settings and
auto-configuration dialogs. Checks registered Auth objects, and if the
Auth object matches the currently selected service in the settings
window or auto-configuration dialog, will display "connect account"
buttons for the user to be able to click (which are optional, they can
still use stream keys if they'd prefer).
Makes it so that services can have custom handling on a per-service
basis. The bottom part of the service pane is now a stacked widget
which can now be customized for different types of services
(particularly OAuth services).
The "Custom" service has been moved, and is now an item called "Custom"
in the "Services" combo box. This simplifies the stream page of
auto-configuration and removes an unnecessary widget. Overall a minor
but nice slimline/improvement on user experience.
The stats dock was incorrectly added to the .ui file, causing the stats
dock to show by default on startup, and just generally causing a bad
default startup UI appearance. This fixes that by adding the stats dock
programmatically/dynamically instead of modifying the .ui file.
This changes the remux dialog to support a collection of input/output
pairs, presented as a QTableView. Standard Qt icons are used to
indicate the state of each entry during a remux operation. Drag/drop
support is added to populate the list quickly. Both Dark and Rachni
themes are updated to make QTableView look reasonable.
Relevant text is added in the localization files.
Closesobsproject/obs-studio#1153
OBS Studio currently does not support retina rendering for any of the
images in the app. This adds support for retina pixmap rendering as
well as adding higher resolution versions of each icon that was not
a high enough resolution to support 2x. The icons work when switching
themes and will only render the 2x versions when the device pixel
ratio is greater than or equal to 2.
I also added credits to the readme for images that were already being
used that require credit to the author. If the OBS community has
paid for these images already, I can remove the credits from the
readme. The credit is for the invisible, visible, and gear icons.
In commit 57f8c5e3, a stretch spacer was put in to the filter window UI,
which was meant to be used when there's no video for the source.
However, it was always put in, and would stretch the layout even when
there was video. This fixes that issue by only inserting a stretch
spacer when there's no video for the source.
This commit adds the ability to select a background color for a
scene-item, whether it's a custom color or one of eight presets.
As this is an initial implementation, it lacks theme customizability,
and it also lacks the ability for the user to set their own preset
colors, so only the hard-coded 8 are available.
When the vertical volume meter was introduced it set in the OBSBasic.ui
mixer dock definition a min width/height that was valid for both
widgets. QStackedWidget hints the minimum size as the higher w/h
of its children so this workaround is necessary.
Adds an option to enable/disable blocking hotkeys when the window is in
focus which is normally used in order to prevent hotkey/shortcut
conflicts. This does not apply to the settings window; the hotkey
behavior is unchanged with the settings window (in order to prevent
hotkeys from being used while setting hotkeys for example).
Closesobsproject/obs-studio#1267
Add a new algorithm to calculate the true-peak. It implements the
Whittaker- Shannon interpolation from four samples to create 4
intermediate samples (5 x oversampling) inbetween the middle two
samples.
With 4 samples and 4 intermediate samples the algorithm can be
implemented as a 4x4 vector-matrix cross product, which is ideal for
SSE.
I've also replaced the sample-peak algorithm using SSE as well to
improve performance.
Closesobsproject/obs-studio#1189
Adds the ability to upload crash reports, making it easier for users to
give us crash data. This should be considered a temporarily solution,
as automated crash reporting should be the ideal solution as soon as
time permits.
This fixes a problem introduced in #1050 where the Copy option would
be grayed out when rightclicking a source above the currently selected
source. This also retains the functionality of not having the Copy option
enabled when no source is selected.
The decay rate of the audio meters can now be selected in the audio
settings. The values are:
- "Fast" (OBS default, 40 dB / 1.7s)
- "Medium" (Type I PPM, 20 dB / 1.7s)
- "Slow" (Type II PPM, 24 dB / 2.8s)
Closesjp9000/obs-studio#1143
(also obs, deps/media-playback, libobs/audio-monitoring, decklink,
linux-alsa, linux-pulseaudio, mac-capture, obs-ffmpeg, win-dshow,
win-wasapi)
Default channel layout for 4 channels is 4.0 in FFmpeg.
Replacing quad with 4.0 will improve compatibility since FFmpeg has
better support of its default channel layouts.
This adds the ability to switch to a scene by double-clicking it when in
studio mode.
(Edit by Jim: In case this change is undesired by the user, this has
been changed to be an option in general settings; disabled by default)
Closesjp9000/obs-studio#1029
(This commit also modifies the following modules: UI,
deps/media-playback, coreaudio-encoder, decklink, linux-alsa,
linux-pulseaudio, mac-capture, obs-ffmpeg, obs-filters, obs-libfdk,
obs-outputs, win-dshow, and win-wasapi)
Adds surround sound audio support to the core, core plugins, and user
interface.
Compatible streaming services: Twitch, FB 360 live
Compatible protocols: rtmp / mpeg-ts tcp udp
Compatible file formats: mkv mp4 ts (others untested)
Compatible codecs: ffmpeg aac, fdk_aac, CoreAudio aac,
opus, vorbis, pcm (others untested).
Tested streaming servers: wowza, nginx
HLS, mpeg-dash : surround passthrough
Html5 players tested with live surround:
videojs, mediaelement, viblast (hls+dash), hls.js
Decklink: on win32, swap channels order for 5.1 7.1
(due to different channel mapping on wav, mpeg, ffmpeg)
Audio filters: surround working.
Monitoring: surround working (win macOs linux (pulse-audio)).
VST: stereo plugins keep in general only the first two channels.
surround plugins should work (e.g. mcfx does).
OS: win, macOs, linux (alsa, pulse-audio).
Misc: larger audio bitrates unlocked to accommodate more channels
NB: mf-aac only supports mono and stereo + 5.1 on win 10
(not implemented due to lack of usefulness)
Closesjp9000/obs-studio#968
This makes it so the buttons appear "pressed" while streaming/recording
to more visibly help indicate that they are currently active.
Closesjp9000/obs-studio#1039
This commit addresses Mantis Bug 993. If no source was selected, the
"Copy" context menu item was enabled, but selecting it would do nothing.
This commit disables that menu item when no sources are selected.
Replay buffer is currently only supported in simple mode. This change
adds support to advanced mode and is, for the most part, a mirror of the
addition of replay buffer to simple mode.
Mantis-bug: https://obsproject.com/mantis/view.php?id=792Closesjp9000/obs-studio#1019
Allows the ability to hide/unhide sources in the mixer that the user
doesn't care about or doesn't necessarily want to see (such as video
sources that have audio but don't have any audio playing). If all
sources are hidden, the user can right-click the mixer's empty area and
choose "unhide all" via a context menu.
Closesjp9000/obs-studio#1002
Instead of having an extra config button that essentially wastes
valuable window space, allow the ability to open advanced audio
properties from each audio meter config button.
This commit fixes two regressions introduced by the modular UI (commit
25bb8a444f):
- the Delete key no longer works in the scene list
- the Delete key no longer works working in the source list
This commit also enables the Delete key on sources that were selected by
clicking on them in the preview, which addresses Mantis Bug 576
(https://obsproject.com/mantis/view.php?id=576).
This fixes the issue presented in:
https://obsproject.com/mantis/view.php?id=885
Minimum size is changed to 700x512. I arrived at this number from testing
the minimum sizes that I felt the settings UI was still perfectly usable
and readable. Any smaller, and things became difficult to see and adjust.
As a note, this does increase the minum width of the settings window, as
the previous minimum allowed you to cut off objects and render the window
too small to be usable.
Changes the UI to an adjustable user interface, allowing the user to
fully customize how the scenes list, sources list, the mixer,
transitions, and the buttons are oriented on the main window window.
(Edit by Jim: Removed "Fullscreen Preview" because that's already sort
of served by the normal fullscreen projector option via the preview
context menu)
Closesjp9000/obs-studio#846
Shows performance stats, and streaming/recording stats, and helps warn
the user when they have less-than-optimal values with coloring on the
values (e.g. yellow when getting low on disk space, red when getting
really low)
The auto-configuration wizard is designed to allow first-time or
novice/uneducated users or to set up video and encoding settings in a
very quick and easy way. It'll automatically perform a bandwidth test,
and/or test the user's video settings to determine the most ideal
settings for streaming and recording (assuming a 1-pc setup).
The audio subsystem of windows is by default configured to lower the
volume of other things while a communications device (mic) is currently
active. This patch prevents that from being enabled with OBS. If the
user needs audio ducking enabled again for whatever reason, there is now
an option to re-enable it in advanced settings.
Closesjp9000/obs-studio#884
This adds close buttons to remux dialog, output timer dialog, and
advanced audio properties dialog. I also did a small refactor of the
remux dialog so the buttons were consistent with other dialogs.
Closesjp9000/obs-studio#876
Added a shortcut to "Edit Transform", with Ctrl+E (lines 1191-1193).
Editing was very easy in OBS Classic, and I could not find the option
for stretching a source to bounds in OBS Studio, so the "Edit Transform"
dialogue should be more user-facing. Giving it a keyboard shortcut
denotes that it is important enough to have a shortcut, as opposed
to the myriad options with no shortcut
This commit adds the ability to copy a scene item's transform and crop
settings and paste those settings onto another scene item in any scene
or scene collection. It also changes the menu shortcut key for the
Transform action "Center to screen" from "C" to "n" because "C" is the
standard shortcut key for "Copy" in most other applications.
Closesjp9000/obs-studio#719
Adds the ability to use a specific prefix and/or suffix on replay buffer
filenames to distinguish them from normal recordings. Defaults to
having the prefix "Replay".
Replay buffer and recording should be separate in case the user wants to
start recording from a specific point rather being forced to reconfigure
for regular recording.
Creates a new button on the main window below the recording button for
turning on/off the replay buffer.
Adds preview scaling to the right-click context menu for the preview
pane. This allows the ability to, for example, zoom the preview and
edit the preview 1:1 (canvas/base resolution). This was a missing
parity feature. Additionally, also allows scaling to the
"output/scaled" resolution the program is set to.
When the preview is in scale mode and is the focused widget, you can
hold space and drag with left click to change the zoomed position.
(Notes added by Jim)
Closesjp9000/obs-studio#687