obs-studio/obs/forms/OBSBasic.ui
jp9000 00086f0890 UI: Add FLV file output (sharing encoders)
Implement the 'file path' in output settings, and implement the 'start
recording' button, though for the time being I'm just going to make it
use a directory rather than allow custom file names.

This file output will actually share the video and audio encoder with
the stream.

I don't really know what to do about MP4 -- I don't really like the idea
of saving directly in the program, if you do and the program crashes,
that MP4 file is lost.  I'm contemplating making some sort of mp4 output
process stub.  So no MP4 file output for the time being.

If you need MP4, just remux it with FFmpeg:

ffmpeg -i flv_file.flv -acodec copy -vcodec copy mp4_file.mp4
2014-05-20 23:31:04 -07:00

660 lines
20 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<author>Jim</author>
<class>OBSBasic</class>
<widget class="QMainWindow" name="OBSBasic">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>927</width>
<height>700</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="windowTitle">
<string>.MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="OBSQTDisplay" name="preview" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
</widget>
</item>
<item alignment="Qt::AlignHCenter|Qt::AlignVCenter">
<widget class="QWidget" name="widget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>720</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>154</height>
</size>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QWidget" name="widget_5" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>150</width>
<height>0</height>
</size>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Basic.Main.Scenes</string>
</property>
</widget>
</item>
<item>
<widget class="QFrame" name="frame_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QListWidget" name="scenes">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
</widget>
</item>
<item>
<widget class="QToolBar" name="toolBar">
<property name="iconSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="floatable">
<bool>false</bool>
</property>
<addaction name="actionAddScene"/>
<addaction name="actionRemoveScene"/>
<addaction name="actionSceneProperties"/>
<addaction name="separator"/>
<addaction name="actionSceneUp"/>
<addaction name="actionSceneDown"/>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="widget_3" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>150</width>
<height>0</height>
</size>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>Basic.Main.Sources</string>
</property>
</widget>
</item>
<item>
<widget class="QFrame" name="frame_3">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QListWidget" name="sources">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
</widget>
</item>
<item>
<widget class="QToolBar" name="toolBar_2">
<property name="iconSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="floatable">
<bool>false</bool>
</property>
<addaction name="actionAddSource"/>
<addaction name="actionRemoveSource"/>
<addaction name="actionSourceProperties"/>
<addaction name="separator"/>
<addaction name="actionSourceUp"/>
<addaction name="actionSourceDown"/>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="widget_4" native="true">
<layout class="QVBoxLayout" name="verticalLayout_9">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>Volume</string>
</property>
</widget>
</item>
<item>
<widget class="QScrollArea" name="scrollArea">
<property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOn</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="volumeWidgets">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>233</width>
<height>16</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QVBoxLayout" name="verticalLayout_6">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
</item>
<item alignment="Qt::AlignTop">
<widget class="QWidget" name="widget_2" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>150</width>
<height>0</height>
</size>
</property>
<layout class="QVBoxLayout" name="verticalLayout_10">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QPushButton" name="streamButton">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Basic.Main.StartStreaming</string>
</property>
<property name="checkable">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="recordButton">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Basic.Main.StartRecording</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="settingsButton">
<property name="text">
<string>Settings</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="exitButton">
<property name="text">
<string>Exit</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>927</width>
<height>24</height>
</rect>
</property>
<widget class="QMenu" name="menu_File">
<property name="title">
<string>Basic.MainMenu.File</string>
</property>
<addaction name="action_Save"/>
<addaction name="action_Open"/>
<addaction name="separator"/>
<addaction name="action_Settings"/>
<addaction name="separator"/>
<addaction name="actionE_xit"/>
</widget>
<widget class="QMenu" name="menuBasic_MainMenu_Help">
<property name="title">
<string>Basic.MainMenu.Help</string>
</property>
<widget class="QMenu" name="menuLogFiles">
<property name="title">
<string>Basic.MainMenu.Help.Logs</string>
</property>
<addaction name="actionUploadCurrentLog"/>
<addaction name="actionUploadLastLog"/>
</widget>
<addaction name="menuLogFiles"/>
</widget>
<addaction name="menu_File"/>
<addaction name="menuBasic_MainMenu_Help"/>
</widget>
<widget class="QStatusBar" name="statusbar"/>
<action name="actionAddScene">
<property name="icon">
<iconset resource="obs.qrc">
<normaloff>:/res/images/add.png</normaloff>:/res/images/add.png</iconset>
</property>
<property name="text">
<string>Add</string>
</property>
</action>
<action name="actionAddSource">
<property name="icon">
<iconset resource="obs.qrc">
<normaloff>:/res/images/add.png</normaloff>:/res/images/add.png</iconset>
</property>
<property name="text">
<string>Add</string>
</property>
</action>
<action name="actionRemoveScene">
<property name="icon">
<iconset resource="obs.qrc">
<normaloff>:/res/images/list_remove.png</normaloff>:/res/images/list_remove.png</iconset>
</property>
<property name="text">
<string>Remove</string>
</property>
</action>
<action name="actionRemoveSource">
<property name="icon">
<iconset resource="obs.qrc">
<normaloff>:/res/images/list_remove.png</normaloff>:/res/images/list_remove.png</iconset>
</property>
<property name="text">
<string>Remove</string>
</property>
</action>
<action name="actionSceneProperties">
<property name="enabled">
<bool>false</bool>
</property>
<property name="icon">
<iconset resource="obs.qrc">
<normaloff>:/res/images/properties.png</normaloff>:/res/images/properties.png</iconset>
</property>
<property name="text">
<string>Properties</string>
</property>
</action>
<action name="actionSourceProperties">
<property name="enabled">
<bool>true</bool>
</property>
<property name="icon">
<iconset resource="obs.qrc">
<normaloff>:/res/images/properties.png</normaloff>:/res/images/properties.png</iconset>
</property>
<property name="text">
<string>Properties</string>
</property>
</action>
<action name="actionSceneUp">
<property name="enabled">
<bool>false</bool>
</property>
<property name="icon">
<iconset resource="obs.qrc">
<normaloff>:/res/images/up.png</normaloff>:/res/images/up.png</iconset>
</property>
<property name="text">
<string>Basic.Main.MoveUp</string>
</property>
</action>
<action name="actionSourceUp">
<property name="enabled">
<bool>true</bool>
</property>
<property name="icon">
<iconset resource="obs.qrc">
<normaloff>:/res/images/up.png</normaloff>:/res/images/up.png</iconset>
</property>
<property name="text">
<string>MoveUp</string>
</property>
</action>
<action name="actionSceneDown">
<property name="enabled">
<bool>false</bool>
</property>
<property name="icon">
<iconset resource="obs.qrc">
<normaloff>:/res/images/down.png</normaloff>:/res/images/down.png</iconset>
</property>
<property name="text">
<string>Basic.Main.MoveDown</string>
</property>
</action>
<action name="actionSourceDown">
<property name="enabled">
<bool>true</bool>
</property>
<property name="icon">
<iconset resource="obs.qrc">
<normaloff>:/res/images/down.png</normaloff>:/res/images/down.png</iconset>
</property>
<property name="text">
<string>MoveDown</string>
</property>
</action>
<action name="action_New">
<property name="text">
<string>Basic.MainMenu.SwitchMode</string>
</property>
</action>
<action name="action_Open">
<property name="text">
<string>Basic.MainMenu.File.Export</string>
</property>
</action>
<action name="action_Save">
<property name="text">
<string>Basic.MainMenu.File.Import</string>
</property>
</action>
<action name="action_Settings">
<property name="text">
<string>Basic.MainMenu.File.Settings</string>
</property>
</action>
<action name="actionE_xit">
<property name="text">
<string>Basic.MainMenu.File.Exit</string>
</property>
</action>
<action name="actionUploadLastLog">
<property name="text">
<string>Basic.MainMenu.Help.Logs.UploadLastLog</string>
</property>
</action>
<action name="actionUploadCurrentLog">
<property name="text">
<string>Basic.MainMenu.Help.Logs.UploadCurrentLog</string>
</property>
</action>
</widget>
<customwidgets>
<customwidget>
<class>OBSQTDisplay</class>
<extends>QWidget</extends>
<header>qt-display.hpp</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources>
<include location="obs.qrc"/>
</resources>
<connections>
<connection>
<sender>actionE_xit</sender>
<signal>triggered()</signal>
<receiver>OBSBasic</receiver>
<slot>close()</slot>
<hints>
<hint type="sourcelabel">
<x>-1</x>
<y>-1</y>
</hint>
<hint type="destinationlabel">
<x>463</x>
<y>351</y>
</hint>
</hints>
</connection>
<connection>
<sender>exitButton</sender>
<signal>clicked()</signal>
<receiver>OBSBasic</receiver>
<slot>close()</slot>
<hints>
<hint type="sourcelabel">
<x>697</x>
<y>615</y>
</hint>
<hint type="destinationlabel">
<x>463</x>
<y>351</y>
</hint>
</hints>
</connection>
</connections>
</ui>