New upstream version 0.16.2+dfsg1
This commit is contained in:
parent
67704ac59c
commit
6efda2859e
377 changed files with 7938 additions and 696 deletions
|
|
@ -11,6 +11,14 @@ if(WIN32)
|
|||
add_subdirectory(win-mf)
|
||||
add_subdirectory(obs-qsv11)
|
||||
add_subdirectory(vlc-video)
|
||||
option(BUILD_AMF_ENCODER "Build AMD Advanced Media Framework encoder module" OFF)
|
||||
if (BUILD_AMF_ENCODER)
|
||||
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/enc-amf/CMakeLists.txt")
|
||||
add_subdirectory(enc-amf)
|
||||
else()
|
||||
message(STATUS "enc-amf submodule not found! Please fetch submodules. enc-amf plugin disabled.")
|
||||
endif()
|
||||
endif()
|
||||
elseif(APPLE)
|
||||
add_subdirectory(coreaudio-encoder)
|
||||
add_subdirectory(mac-avcapture)
|
||||
|
|
@ -19,6 +27,7 @@ elseif(APPLE)
|
|||
add_subdirectory(mac-syphon)
|
||||
add_subdirectory(decklink/mac)
|
||||
add_subdirectory(vlc-video)
|
||||
add_subdirectory(linux-jack)
|
||||
elseif("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
|
||||
add_subdirectory(linux-capture)
|
||||
add_subdirectory(linux-pulseaudio)
|
||||
|
|
@ -34,6 +43,17 @@ elseif("${CMAKE_SYSTEM_NAME}" MATCHES "FreeBSD")
|
|||
add_subdirectory(linux-jack)
|
||||
endif()
|
||||
|
||||
if(WIN32 OR APPLE)
|
||||
option(BUILD_BROWSER "Build browser plugin" OFF)
|
||||
if (BUILD_BROWSER)
|
||||
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/obs-browser/CMakeLists.txt")
|
||||
add_subdirectory(obs-browser)
|
||||
else()
|
||||
message(STATUS "obs-browser submodule not found! Please fetch submodules. obs-browser plugin disabled.")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
add_subdirectory(image-source)
|
||||
add_subdirectory(obs-x264)
|
||||
add_subdirectory(obs-libfdk)
|
||||
|
|
@ -41,5 +61,6 @@ add_subdirectory(obs-ffmpeg)
|
|||
add_subdirectory(obs-outputs)
|
||||
add_subdirectory(obs-filters)
|
||||
add_subdirectory(obs-transitions)
|
||||
add_subdirectory(obs-text)
|
||||
add_subdirectory(rtmp-services)
|
||||
add_subdirectory(text-freetype2)
|
||||
|
|
|
|||
3
plugins/coreaudio-encoder/data/locale/he-IL.ini
Normal file
3
plugins/coreaudio-encoder/data/locale/he-IL.ini
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
CoreAudioAAC="מקודד AAC של CoreAudio"
|
||||
Bitrate="קצב ביטים"
|
||||
|
||||
|
|
@ -2,4 +2,5 @@ CoreAudioAAC="CoreAudio AAC-kodare"
|
|||
Bitrate="Bithastighet"
|
||||
AllowHEAAC="Tillåt HE-AAC"
|
||||
OutputSamplerate="Samplingsfrekvens för utmatning"
|
||||
UseInputSampleRate="Använd inmatningens (OBS) samplingshastighet (kan lista bithastigheter som inte stöds)"
|
||||
|
||||
|
|
|
|||
6
plugins/coreaudio-encoder/data/locale/uk-UA.ini
Normal file
6
plugins/coreaudio-encoder/data/locale/uk-UA.ini
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
CoreAudioAAC="CoreAudio AAC енкодер"
|
||||
Bitrate="Бітрейт"
|
||||
AllowHEAAC="Дозволити HE-AAC"
|
||||
OutputSamplerate="Частота дискретизації виводу"
|
||||
UseInputSampleRate="Використати частоту дискретизації вводу (OBS) (може відображатися непідтримуваний бітрейт)"
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
BlackmagicDevice="Blackmagic 장치"
|
||||
Device="장치"
|
||||
Mode="모드"
|
||||
Mode="방식"
|
||||
Buffering="버퍼링 사용"
|
||||
PixelFormat="픽셀 형식"
|
||||
|
||||
|
|
|
|||
6
plugins/decklink/data/locale/uk-UA.ini
Normal file
6
plugins/decklink/data/locale/uk-UA.ini
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
BlackmagicDevice="Blackmagic пристрій"
|
||||
Device="Пристрій"
|
||||
Mode="Режим"
|
||||
Buffering="Увімкнути буферизацію"
|
||||
PixelFormat="Формат пікселів"
|
||||
|
||||
|
|
@ -2,4 +2,14 @@ ImageInput="Billede"
|
|||
File="Billedfil"
|
||||
UnloadWhenNotShowing="Fjern billede fra hukommelsen når det ikke vises"
|
||||
|
||||
SlideShow="Billede diasshow"
|
||||
SlideShow.TransitionSpeed="Overgangshastighed (millisekunder)"
|
||||
SlideShow.SlideTime="Tid mellem dias (millisekunder)"
|
||||
SlideShow.Files="Billedfiler"
|
||||
SlideShow.Randomize="Tilfældig afspilning"
|
||||
SlideShow.Transition="Overgang"
|
||||
SlideShow.Transition.Cut="Klip"
|
||||
SlideShow.Transition.Fade="Overgang"
|
||||
SlideShow.Transition.Swipe="Stryg"
|
||||
SlideShow.Transition.Slide="Glide"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,14 +2,14 @@ ImageInput="Imagem"
|
|||
File="Arquivo de Imagem"
|
||||
UnloadWhenNotShowing="Descarregar imagem quando não estiver em exibição"
|
||||
|
||||
SlideShow="Imagens em Deslize"
|
||||
SlideShow.TransitionSpeed="Velocidade de transição (milissegundos)"
|
||||
SlideShow.SlideTime="Tempo entre Deslizes (milissegundos)"
|
||||
SlideShow="Apresentação de Slides"
|
||||
SlideShow.TransitionSpeed="Velocidade de Transição (em milissegundos)"
|
||||
SlideShow.SlideTime="Tempo Entre cada Slide (em milissegundos)"
|
||||
SlideShow.Files="Arquivos de Imagem"
|
||||
SlideShow.Randomize="Reprodução aleatória"
|
||||
SlideShow.Transition="Transição"
|
||||
SlideShow.Transition.Cut="Cortar"
|
||||
SlideShow.Transition.Fade="Desvanecer"
|
||||
SlideShow.Transition.Swipe="Deslizar"
|
||||
SlideShow.Transition.Slide="Deslize"
|
||||
SlideShow.Transition.Cut="Corte"
|
||||
SlideShow.Transition.Fade="Esmaecer"
|
||||
SlideShow.Transition.Swipe="Arrastar"
|
||||
SlideShow.Transition.Slide="Deslizar"
|
||||
|
||||
|
|
|
|||
15
plugins/image-source/data/locale/uk-UA.ini
Normal file
15
plugins/image-source/data/locale/uk-UA.ini
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
ImageInput="Зображення"
|
||||
File="Файл зображення"
|
||||
UnloadWhenNotShowing="Вивантажи зображення, коли не відображається"
|
||||
|
||||
SlideShow="Слайд-шоу"
|
||||
SlideShow.TransitionSpeed="Тривалість відео-переходу (мілісекунд)"
|
||||
SlideShow.SlideTime="Час між слайдами (мілісекунд)"
|
||||
SlideShow.Files="Файли зображень"
|
||||
SlideShow.Randomize="Випадкове відтворення"
|
||||
SlideShow.Transition="Відео-перехід"
|
||||
SlideShow.Transition.Cut="Cut"
|
||||
SlideShow.Transition.Fade="Fade"
|
||||
SlideShow.Transition.Swipe="Swipe"
|
||||
SlideShow.Transition.Slide="Slide"
|
||||
|
||||
|
|
@ -207,7 +207,7 @@ static void image_source_tick(void *data, float seconds)
|
|||
time_t t = get_modified_timestamp(context->file);
|
||||
context->update_time_elapsed = 0.0f;
|
||||
|
||||
if (context->file_timestamp < t) {
|
||||
if (context->file_timestamp != t) {
|
||||
image_source_load(context);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -64,6 +64,8 @@ struct alsa_data {
|
|||
};
|
||||
|
||||
static const char * alsa_get_name(void *);
|
||||
static bool alsa_devices_changed(obs_properties_t *props,
|
||||
obs_property_t *p, obs_data_t *settings);
|
||||
static obs_properties_t * alsa_get_properties(void *);
|
||||
static void * alsa_create(obs_data_t *, obs_source_t *);
|
||||
static void alsa_destroy(void *);
|
||||
|
|
@ -119,7 +121,12 @@ void * alsa_create(obs_data_t *settings, obs_source_t *source)
|
|||
data->listen_thread = 0;
|
||||
data->reopen_thread = 0;
|
||||
|
||||
data->device = bstrdup(obs_data_get_string(settings, "device_id"));
|
||||
const char *device = obs_data_get_string(settings, "device_id");
|
||||
|
||||
if (strcmp(device, "__custom__") == 0)
|
||||
device = obs_data_get_string(settings, "custom_pcm");
|
||||
|
||||
data->device = bstrdup(device);
|
||||
data->rate = obs_data_get_int(settings, "rate");
|
||||
|
||||
if (os_event_init(&data->abort_event, OS_EVENT_TYPE_MANUAL) != 0) {
|
||||
|
|
@ -179,6 +186,10 @@ void alsa_update(void *vptr, obs_data_t *settings)
|
|||
bool reset = false;
|
||||
|
||||
device = obs_data_get_string(settings, "device_id");
|
||||
|
||||
if (strcmp(device, "__custom__") == 0)
|
||||
device = obs_data_get_string(settings, "custom_pcm");
|
||||
|
||||
if (strcmp(data->device, device) != 0) {
|
||||
bfree(data->device);
|
||||
data->device = bstrdup(device);
|
||||
|
|
@ -215,9 +226,28 @@ const char * alsa_get_name(void *unused)
|
|||
void alsa_get_defaults(obs_data_t *settings)
|
||||
{
|
||||
obs_data_set_default_string(settings, "device_id", "default");
|
||||
obs_data_set_default_string(settings, "custom_pcm", "default");
|
||||
obs_data_set_default_int(settings, "rate", 44100);
|
||||
}
|
||||
|
||||
static bool alsa_devices_changed(obs_properties_t *props,
|
||||
obs_property_t *p, obs_data_t *settings)
|
||||
{
|
||||
UNUSED_PARAMETER(p);
|
||||
bool visible = false;
|
||||
const char *device_id = obs_data_get_string(settings, "device_id");
|
||||
|
||||
if (strcmp(device_id, "__custom__") == 0)
|
||||
visible = true;
|
||||
|
||||
obs_property_t *custom_pcm = obs_properties_get(props, "custom_pcm");
|
||||
|
||||
obs_property_set_visible(custom_pcm, visible);
|
||||
obs_property_modified(custom_pcm, settings);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
obs_properties_t * alsa_get_properties(void *unused)
|
||||
{
|
||||
void **hints;
|
||||
|
|
@ -240,10 +270,15 @@ obs_properties_t * alsa_get_properties(void *unused)
|
|||
|
||||
obs_property_list_add_string(devices, "Default", "default");
|
||||
|
||||
obs_properties_add_text(props, "custom_pcm",
|
||||
obs_module_text("PCM"), OBS_TEXT_DEFAULT);
|
||||
|
||||
rate = obs_properties_add_list(props, "rate",
|
||||
obs_module_text("Rate"), OBS_COMBO_TYPE_LIST,
|
||||
OBS_COMBO_FORMAT_INT);
|
||||
|
||||
obs_property_set_modified_callback(devices, alsa_devices_changed);
|
||||
|
||||
obs_property_list_add_int(rate, "32000 Hz", 32000);
|
||||
obs_property_list_add_int(rate, "44100 Hz", 44100);
|
||||
obs_property_list_add_int(rate, "48000 Hz", 48000);
|
||||
|
|
@ -277,6 +312,8 @@ obs_properties_t * alsa_get_properties(void *unused)
|
|||
|
||||
obs_property_list_add_string(devices, descr, name);
|
||||
|
||||
obs_property_list_add_string(devices, "Custom", "__custom__");
|
||||
|
||||
next:
|
||||
if (name != NULL)
|
||||
free(name), name = NULL;
|
||||
|
|
|
|||
3
plugins/linux-alsa/data/locale/uk-UA.ini
Normal file
3
plugins/linux-alsa/data/locale/uk-UA.ini
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
AlsaInput="Аудіо пристрій (ALSA)"
|
||||
Device="Пристрій"
|
||||
|
||||
|
|
@ -2,7 +2,7 @@ X11SharedMemoryScreenInput="画面キャプチャ (XSHM)"
|
|||
Screen="画面"
|
||||
CaptureCursor="カーソルをキャプチャ"
|
||||
AdvancedSettings="高度な設定"
|
||||
XServer="X サーバ"
|
||||
XServer="X サーバー"
|
||||
XCCapture="ウィンドウキャプチャ (Xcomposite)"
|
||||
Window="ウィンドウ"
|
||||
CropTop="上部クロップ (ピクセル)"
|
||||
|
|
@ -10,7 +10,7 @@ CropLeft="左側クロップ (ピクセル)"
|
|||
CropRight="右側クロップ (ピクセル)"
|
||||
CropBottom="下部クロップ (ピクセル)"
|
||||
SwapRedBlue="赤と青を入れ替え"
|
||||
LockX="キャプチャ時にXサーバをロック"
|
||||
IncludeXBorder="Xウインドウの境界を含める"
|
||||
LockX="キャプチャ時にXサーバーをロック"
|
||||
IncludeXBorder="Xウィンドウの境界を含める"
|
||||
ExcludeAlpha="アルファなしテクスチャ形式を使用 (Mesaの回避策)"
|
||||
|
||||
|
|
|
|||
16
plugins/linux-capture/data/locale/uk-UA.ini
Normal file
16
plugins/linux-capture/data/locale/uk-UA.ini
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
X11SharedMemoryScreenInput="Захват екрану (XSHM)"
|
||||
Screen="Екран"
|
||||
CaptureCursor="Захват курсору"
|
||||
AdvancedSettings="Розширені параметри"
|
||||
XServer="X-сервер"
|
||||
XCCapture="Захват вікна (Xcomposite)"
|
||||
Window="Вікно"
|
||||
CropTop="Обрізати зверху (пікселі)"
|
||||
CropLeft="Обрізати зліва (пікселі)"
|
||||
CropRight="Обрізати зправа (пікселі)"
|
||||
CropBottom="Обрізати знизу (пікселі)"
|
||||
SwapRedBlue="Поміняти червоний і синій"
|
||||
LockX="Блокувати X-сервер під час захвату"
|
||||
IncludeXBorder="Захоплювати край X вікна"
|
||||
ExcludeAlpha="Використовувати формат текстур без альфа-каналу (для Mesa)"
|
||||
|
||||
4
plugins/linux-jack/data/locale/uk-UA.ini
Normal file
4
plugins/linux-jack/data/locale/uk-UA.ini
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
StartJACKServer="Запустити JACK-сервер"
|
||||
Channels="Кількість каналів"
|
||||
JACKInput="Клієнт JACK вводу"
|
||||
|
||||
|
|
@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
#include "jack-wrapper.h"
|
||||
|
||||
#include <pthread.h>
|
||||
#include <util/threading.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <util/platform.h>
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
#include <jack/jack.h>
|
||||
#include <obs.h>
|
||||
#include <pthread.h>
|
||||
#include <util/threading.h>
|
||||
|
||||
struct jack_data {
|
||||
obs_source_t *source;
|
||||
|
|
|
|||
4
plugins/linux-pulseaudio/data/locale/uk-UA.ini
Normal file
4
plugins/linux-pulseaudio/data/locale/uk-UA.ini
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
PulseInput="Захват Аудіо входу (PulseAudio)"
|
||||
PulseOutput="Захват Аудіо виводу (PulseAudio)"
|
||||
Device="Пристрій"
|
||||
|
||||
|
|
@ -183,7 +183,13 @@ static void pulse_source_info(pa_context *c, const pa_source_info *i, int eol,
|
|||
{
|
||||
UNUSED_PARAMETER(c);
|
||||
PULSE_DATA(userdata);
|
||||
if (eol != 0)
|
||||
// An error occured
|
||||
if (eol < 0) {
|
||||
data->format = PA_SAMPLE_INVALID;
|
||||
goto skip;
|
||||
}
|
||||
// Terminating call for multi instance callbacks
|
||||
if (eol > 0)
|
||||
goto skip;
|
||||
|
||||
blog(LOG_INFO, "Audio format: %s, %"PRIu32" Hz"
|
||||
|
|
@ -242,6 +248,10 @@ static int_fast32_t pulse_start_recording(struct pulse_data *data)
|
|||
blog(LOG_ERROR, "Unable to get source info !");
|
||||
return -1;
|
||||
}
|
||||
if (data->format == PA_SAMPLE_INVALID) {
|
||||
blog(LOG_ERROR, "An error occurred while getting the source info!");
|
||||
return -1;
|
||||
}
|
||||
|
||||
pa_sample_spec spec;
|
||||
spec.format = data->format;
|
||||
|
|
@ -507,11 +517,7 @@ static void *pulse_create(obs_data_t *settings, obs_source_t *source)
|
|||
pulse_init();
|
||||
pulse_update(data, settings);
|
||||
|
||||
if (data->stream)
|
||||
return data;
|
||||
|
||||
pulse_destroy(data);
|
||||
return NULL;
|
||||
return data;
|
||||
}
|
||||
|
||||
struct obs_source_info pulse_input_capture = {
|
||||
|
|
|
|||
|
|
@ -1,2 +1,11 @@
|
|||
V4L2Input="Відео пристрій (V4L2)"
|
||||
Device="Пристрій"
|
||||
Input="Вхід"
|
||||
VideoFormat="Формат відео"
|
||||
VideoStandard="Відео стандарт"
|
||||
DVTiming="DV таймінг"
|
||||
Resolution="Роздільна здатність"
|
||||
FrameRate="Частота кадрів"
|
||||
LeaveUnchanged="Залишити без змін"
|
||||
UseBuffering="Увімкнути буферизацію"
|
||||
|
||||
|
|
|
|||
14
plugins/mac-avcapture/data/locale/he-IL.ini
Normal file
14
plugins/mac-avcapture/data/locale/he-IL.ini
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
AVCapture="התקן לכידת וידאו"
|
||||
Device="התקן"
|
||||
UsePreset="השתמש בקבוע מראש"
|
||||
Preset="קבוע מראש"
|
||||
Buffering="השתמש בחוצץ"
|
||||
FrameRate="קצב פריימים"
|
||||
InputFormat="תבנית קלט"
|
||||
ColorSpace="מרחב צבע"
|
||||
VideoRange="טווח וידאו"
|
||||
VideoRange.Partial="חלקי"
|
||||
VideoRange.Full="מלא"
|
||||
Auto="אוטומטי"
|
||||
Unknown="לא ידוע ($1)"
|
||||
|
||||
|
|
@ -1,2 +1,14 @@
|
|||
AVCapture="Відео пристрій"
|
||||
Device="Пристрій"
|
||||
UsePreset="Використовувати шаблон"
|
||||
Preset="Пресет"
|
||||
Buffering="Увімкнути буферизацію"
|
||||
FrameRate="Частота кадрів"
|
||||
InputFormat="Вхідний формат"
|
||||
ColorSpace="Колірний простір"
|
||||
VideoRange="Колірний діапазон"
|
||||
VideoRange.Partial="Частковий"
|
||||
VideoRange.Full="Повний"
|
||||
Auto="Автовизначення"
|
||||
Unknown="Невідомо ($1)"
|
||||
|
||||
|
|
|
|||
21
plugins/mac-capture/data/locale/he-IL.ini
Normal file
21
plugins/mac-capture/data/locale/he-IL.ini
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
CoreAudio.InputCapture="לכידת קלט קולי"
|
||||
CoreAudio.OutputCapture="לכידת פלט קולי"
|
||||
CoreAudio.Device="התקן"
|
||||
CoreAudio.Device.Default="ברירת מחדל"
|
||||
DisplayCapture="הצג לכידת מסך"
|
||||
DisplayCapture.Display="תצוגה"
|
||||
DisplayCapture.ShowCursor="הצג סמן"
|
||||
WindowCapture="לכידת חלון"
|
||||
WindowCapture.ShowShadow="הצג את צל החלון"
|
||||
WindowUtils.Window="חלון"
|
||||
WindowUtils.ShowEmptyNames="הצג חלונות עם שמות ריקים"
|
||||
CropMode="חתוך"
|
||||
CropMode.None="ללא"
|
||||
CropMode.Manual="מדריך משתמש"
|
||||
CropMode.ToWindow="לחלון"
|
||||
CropMode.ToWindowAndManual="לחלון ומדריך משתמש"
|
||||
Crop.origin.x="חתוך שמאלה"
|
||||
Crop.origin.y="חתוך למעלה"
|
||||
Crop.size.width="חתוך ימינה"
|
||||
Crop.size.height="חתוך למטה"
|
||||
|
||||
|
|
@ -6,14 +6,14 @@ DisplayCapture="画面キャプチャ"
|
|||
DisplayCapture.Display="ディスプレイ"
|
||||
DisplayCapture.ShowCursor="カーソルを表示"
|
||||
WindowCapture="ウィンドウキャプチャ"
|
||||
WindowCapture.ShowShadow="ウインドウの影を表示"
|
||||
WindowCapture.ShowShadow="ウィンドウの影を表示"
|
||||
WindowUtils.Window="ウィンドウ"
|
||||
WindowUtils.ShowEmptyNames="空の名前でウィンドウを表示"
|
||||
CropMode="クロップ"
|
||||
CropMode.None="未設定"
|
||||
CropMode.Manual="手動"
|
||||
CropMode.ToWindow="ウィンドウにあわせる"
|
||||
CropMode.ToWindowAndManual="ウインドウに合わせて手動"
|
||||
CropMode.ToWindowAndManual="ウィンドウに合わせて手動"
|
||||
Crop.origin.x="左をクロップ"
|
||||
Crop.origin.y="上をクロップ"
|
||||
Crop.size.width="右をクロップ"
|
||||
|
|
|
|||
|
|
@ -16,6 +16,6 @@ CropMode.ToWindow="윈도우에 맞추기"
|
|||
CropMode.ToWindowAndManual="윈도우에 맞추고 수동"
|
||||
Crop.origin.x="왼쪽 자르기"
|
||||
Crop.origin.y="위쪽 자르기"
|
||||
Crop.size.width="우측 자르기"
|
||||
Crop.size.width="오른쪽 자르기"
|
||||
Crop.size.height="아래 자르기"
|
||||
|
||||
|
|
|
|||
21
plugins/mac-capture/data/locale/uk-UA.ini
Normal file
21
plugins/mac-capture/data/locale/uk-UA.ini
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
CoreAudio.InputCapture="Захват Аудіо входу"
|
||||
CoreAudio.OutputCapture="Захват Аудіо виводу"
|
||||
CoreAudio.Device="Пристрій"
|
||||
CoreAudio.Device.Default="За замовчанням"
|
||||
DisplayCapture="Захват екрану"
|
||||
DisplayCapture.Display="Екран"
|
||||
DisplayCapture.ShowCursor="Показати курсор"
|
||||
WindowCapture="Захват вікна"
|
||||
WindowCapture.ShowShadow="Показати віконну тінь"
|
||||
WindowUtils.Window="Вікно"
|
||||
WindowUtils.ShowEmptyNames="Показати вікна без назв"
|
||||
CropMode="Кадрування"
|
||||
CropMode.None="Не вказано"
|
||||
CropMode.Manual="Вручну"
|
||||
CropMode.ToWindow="По вікно"
|
||||
CropMode.ToWindowAndManual="По вікно та вручну"
|
||||
Crop.origin.x="Обрізати зліва"
|
||||
Crop.origin.y="Обрізати зверху"
|
||||
Crop.size.width="Обрізати зправа"
|
||||
Crop.size.height="Обрізати знизу"
|
||||
|
||||
13
plugins/mac-syphon/data/locale/uk-UA.ini
Normal file
13
plugins/mac-syphon/data/locale/uk-UA.ini
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
Syphon="Захват гри (Syphon)"
|
||||
Source="Джерело"
|
||||
LaunchSyphonInject="Запустити SyphonInject"
|
||||
Inject="Ввести"
|
||||
Application="Програма"
|
||||
SyphonLicense="Ліцензія до Syphon"
|
||||
Crop="Кадрування"
|
||||
Crop.origin.x="Обрізати зліва"
|
||||
Crop.origin.y="Обрізати зверху"
|
||||
Crop.size.width="Обрізати зправа"
|
||||
Crop.size.height="Обрізати знизу"
|
||||
AllowTransparency="Дозволяти прозорість"
|
||||
|
||||
|
|
@ -5,8 +5,10 @@ Bitrate="Bithastighet"
|
|||
UseMaxBitrate="Begränsa bithastighet"
|
||||
MaxBitrate="Maximal bithastighet"
|
||||
MaxBitrateWindow="Maximalt bithastighetsfönster (sekunder)"
|
||||
KeyframeIntervalSec="Intervall för keyframes (sekunder, 0=automatisk)"
|
||||
Profile="Profil"
|
||||
None="(Ingen)"
|
||||
DefaultEncoder="(Standardkodare)"
|
||||
UseBFrames="Använd B-bildrutor"
|
||||
|
||||
|
||||
|
|
|
|||
14
plugins/mac-vth264/data/locale/uk-UA.ini
Normal file
14
plugins/mac-vth264/data/locale/uk-UA.ini
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
VTH264EncHW="Apple VT H264 апаратний енкодер"
|
||||
VTH264EncSW="Apple VT H264 програмний енкодер"
|
||||
VTEncoder="VideoToolbox енкодер"
|
||||
Bitrate="Бітрейт"
|
||||
UseMaxBitrate="Обмежити бітрейт"
|
||||
MaxBitrate="Максимальний бітрейт"
|
||||
MaxBitrateWindow="Вікно для максимального бітрейту (секунд)"
|
||||
KeyframeIntervalSec="Інтервал ключових кадрів (секунд, 0 = авто)"
|
||||
Profile="Профіль"
|
||||
None="(Немає)"
|
||||
DefaultEncoder="(Енкодер за замовчанням)"
|
||||
UseBFrames="Використовувати B-кадри"
|
||||
|
||||
|
||||
|
|
@ -6,6 +6,8 @@ RateControl="Rate Control"
|
|||
KeyframeIntervalSec="Keyframe Interval (seconds, 0=auto)"
|
||||
Lossless="Lossless"
|
||||
|
||||
BFrames="B-frames"
|
||||
|
||||
NVENC.Use2Pass="Use Two-Pass Encoding"
|
||||
NVENC.Preset.default="Default"
|
||||
NVENC.Preset.hq="High Quality"
|
||||
|
|
|
|||
|
|
@ -2,17 +2,18 @@ FFmpegOutput="Saída do FFmpeg"
|
|||
FFmpegAAC="Codificador AAC Padrão do FFmpeg"
|
||||
Bitrate="Taxa de Bits"
|
||||
Preset="Predefinição"
|
||||
RateControl="Controle de Taxa"
|
||||
KeyframeIntervalSec="Intervalo do keyframe (segundos, 0=automático)"
|
||||
RateControl="Controle da Taxa de Bits"
|
||||
KeyframeIntervalSec="Intervalo de Keyframe (segundos, 0=auto)"
|
||||
Lossless="Sem perdas"
|
||||
|
||||
NVENC.Preset.default="Predefinido"
|
||||
NVENC.Use2Pass="Utilizar a codificação em dois passos"
|
||||
NVENC.Preset.default="Padrão"
|
||||
NVENC.Preset.hq="Alta Qualidade"
|
||||
NVENC.Preset.hp="Alto Desempenho"
|
||||
NVENC.Preset.hp="Alta Performance"
|
||||
NVENC.Preset.bd="Bluray"
|
||||
NVENC.Preset.ll="Baixa latência"
|
||||
NVENC.Preset.llhq="Baixa latência Alta Qualidade"
|
||||
NVENC.Preset.llhp="Baixa latência Alto Desempenho"
|
||||
NVENC.Preset.ll="Baixa Latência"
|
||||
NVENC.Preset.llhq="Baixa Latência e Alta Qualidade"
|
||||
NVENC.Preset.llhp="Baixa latência e Alta Performance"
|
||||
NVENC.Level="Nível"
|
||||
|
||||
FFmpegSource="Fonte de mídia"
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ FFmpegAAC="AAC-kodare (FFmpeg standard)"
|
|||
Bitrate="Bithastighet"
|
||||
Preset="Förinställning"
|
||||
RateControl="Hastighetskontroll"
|
||||
KeyframeIntervalSec="Intervall för keyframes (sekunder, 0=automatisk)"
|
||||
Lossless="Förlustfri"
|
||||
|
||||
NVENC.Use2Pass="Använd tvåpassavkodning"
|
||||
|
|
|
|||
49
plugins/obs-ffmpeg/data/locale/uk-UA.ini
Normal file
49
plugins/obs-ffmpeg/data/locale/uk-UA.ini
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
FFmpegOutput="Вивід FFmpeg"
|
||||
FFmpegAAC="FFmpeg AAC енкодер за замовчанням"
|
||||
Bitrate="Бітрейт"
|
||||
Preset="Шаблон"
|
||||
RateControl="Керування потоком"
|
||||
KeyframeIntervalSec="Інтервал ключових кадрів (секунд, 0 = авто)"
|
||||
Lossless="Без втрат"
|
||||
|
||||
NVENC.Use2Pass="Використовувати двопрохідне кодування"
|
||||
NVENC.Preset.default="Стандартний"
|
||||
NVENC.Preset.hq="Висока якість"
|
||||
NVENC.Preset.hp="Висока продуктивність"
|
||||
NVENC.Preset.bd="Blu-ray"
|
||||
NVENC.Preset.ll="З низькою затримкою"
|
||||
NVENC.Preset.llhq="З низькою затримкою, висока Якість"
|
||||
NVENC.Preset.llhp="З низькою затримкою, висока Продуктивність"
|
||||
NVENC.Level="Рівень"
|
||||
|
||||
FFmpegSource="Мультимедіа"
|
||||
LocalFile="Локальний файл"
|
||||
Looping="Повторювати"
|
||||
Input="Вхід"
|
||||
InputFormat="Вхідний формат"
|
||||
ForceFormat="Примусове перетворення формату"
|
||||
HardwareDecode="Використовувати апаратне декодування, за наявності"
|
||||
ClearOnMediaEnd="Не відображати джерело, коли відтворення завершено"
|
||||
Advanced="Розширені параметри"
|
||||
AudioBufferSize="Розмір аудіо буфера, (кадрів)"
|
||||
VideoBufferSize="Розмір відео буфера, (кадрів)"
|
||||
FrameDropping="Вид пропущених кадрів"
|
||||
DiscardNone="Немає"
|
||||
DiscardDefault="За замовчанням (лише збійні пакети)"
|
||||
DiscardNonRef="Всі крім опорних кадрів"
|
||||
DiscardBiDir="Лише В-кадри"
|
||||
DiscardNonIntra="Всі крім I-кадрів"
|
||||
DiscardNonKey="Всі крім ключових кадрів"
|
||||
DiscardAll="Всі кадри (Обережно!)"
|
||||
RestartWhenActivated="Грати з початку, коли джерело стає активним"
|
||||
ColorRange="YUV, колірний діапазон"
|
||||
ColorRange.Auto="Автовизначення"
|
||||
ColorRange.Partial="Частковий"
|
||||
ColorRange.Full="Повний"
|
||||
|
||||
|
||||
MediaFileFilter.AllMediaFiles="Файли мультимедіа"
|
||||
MediaFileFilter.VideoFiles="Відео"
|
||||
MediaFileFilter.AudioFiles="Аудіо"
|
||||
MediaFileFilter.AllFiles="Всі файли"
|
||||
|
||||
|
|
@ -274,7 +274,7 @@ static void ffmpeg_mux_stop(void *data, uint64_t ts)
|
|||
{
|
||||
struct ffmpeg_muxer *stream = data;
|
||||
|
||||
if (capturing(stream)) {
|
||||
if (capturing(stream) || ts == 0) {
|
||||
stream->stop_ts = (int64_t)ts / 1000LL;
|
||||
os_atomic_set_bool(&stream->stopping, true);
|
||||
os_atomic_set_bool(&stream->capturing, false);
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@ struct nvenc_encoder {
|
|||
|
||||
int height;
|
||||
bool first_packet;
|
||||
bool initialized;
|
||||
};
|
||||
|
||||
static const char *nvenc_getname(void *unused)
|
||||
|
|
@ -113,6 +114,8 @@ static bool nvenc_init_codec(struct nvenc_encoder *enc)
|
|||
return false;
|
||||
}
|
||||
|
||||
enc->initialized = true;
|
||||
|
||||
*((AVPicture*)enc->vframe) = enc->dst_picture;
|
||||
return true;
|
||||
}
|
||||
|
|
@ -138,6 +141,7 @@ static bool nvenc_update(void *data, obs_data_t *settings)
|
|||
bool twopass = obs_data_get_bool(settings, "2pass");
|
||||
int gpu = (int)obs_data_get_int(settings, "gpu");
|
||||
bool cbr_override = obs_data_get_bool(settings, "cbr");
|
||||
int bf = (int)obs_data_get_int(settings, "bf");
|
||||
|
||||
video_t *video = obs_encoder_video(enc->encoder);
|
||||
const struct video_output_info *voi = video_output_get_info(video);
|
||||
|
|
@ -159,7 +163,7 @@ static bool nvenc_update(void *data, obs_data_t *settings)
|
|||
|
||||
nvenc_video_info(enc, &info);
|
||||
av_opt_set_int(enc->context->priv_data, "cbr", false, 0);
|
||||
|
||||
av_opt_set(enc->context->priv_data, "profile", profile, 0);
|
||||
av_opt_set(enc->context->priv_data, "preset", preset, 0);
|
||||
|
||||
if (astrcmpi(rc, "cqp") == 0) {
|
||||
|
|
@ -198,6 +202,7 @@ static bool nvenc_update(void *data, obs_data_t *settings)
|
|||
AVCOL_SPC_BT709 : AVCOL_SPC_BT470BG;
|
||||
enc->context->color_range = info.range == VIDEO_RANGE_FULL ?
|
||||
AVCOL_RANGE_JPEG : AVCOL_RANGE_MPEG;
|
||||
enc->context->max_b_frames = bf;
|
||||
|
||||
if (keyint_sec)
|
||||
enc->context->gop_size = keyint_sec * voi->fps_num /
|
||||
|
|
@ -232,6 +237,20 @@ static void nvenc_destroy(void *data)
|
|||
{
|
||||
struct nvenc_encoder *enc = data;
|
||||
|
||||
if (enc->initialized) {
|
||||
AVPacket pkt = {0};
|
||||
int r_pkt = 1;
|
||||
|
||||
while (r_pkt) {
|
||||
if (avcodec_encode_video2(enc->context, &pkt, NULL,
|
||||
&r_pkt) < 0)
|
||||
break;
|
||||
|
||||
if (r_pkt)
|
||||
av_free_packet(&pkt);
|
||||
}
|
||||
}
|
||||
|
||||
avcodec_close(enc->context);
|
||||
av_frame_free(&enc->vframe);
|
||||
avpicture_free(&enc->dst_picture);
|
||||
|
|
@ -363,6 +382,7 @@ static void nvenc_defaults(obs_data_t *settings)
|
|||
obs_data_set_default_string(settings, "level", "auto");
|
||||
obs_data_set_default_bool(settings, "2pass", true);
|
||||
obs_data_set_default_int(settings, "gpu", 0);
|
||||
obs_data_set_default_int(settings, "bf", 2);
|
||||
}
|
||||
|
||||
static bool rate_control_modified(obs_properties_t *ppts, obs_property_t *p,
|
||||
|
|
@ -472,6 +492,9 @@ static obs_properties_t *nvenc_properties(void *unused)
|
|||
obs_module_text("NVENC.Use2Pass"));
|
||||
obs_properties_add_int(props, "gpu", obs_module_text("GPU"), 0, 8, 1);
|
||||
|
||||
obs_properties_add_int(props, "bf", obs_module_text("BFrames"),
|
||||
0, 4, 1);
|
||||
|
||||
return props;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ ColorKeyFilter="Clau de color"
|
|||
SharpnessFilter="Agudesa"
|
||||
ScaleFilter="Escala/Relació d'Aspecte"
|
||||
NoiseGate="Porta de soroll"
|
||||
NoiseSuppress="Supressió de soroll"
|
||||
Gain="Guany"
|
||||
DelayMs="Retard (en mil·lisegons)"
|
||||
Type="Tipus"
|
||||
|
|
@ -59,4 +60,5 @@ ScaleFiltering.Point="Punt"
|
|||
ScaleFiltering.Bilinear="Bilineal"
|
||||
ScaleFiltering.Bicubic="Bicúbic"
|
||||
ScaleFiltering.Lanczos="Lanczos"
|
||||
NoiseSuppress.SuppressLevel="Nivell de supressió (dB)"
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ ColorKeyFilter="Klíč barvy"
|
|||
SharpnessFilter="Ostření"
|
||||
ScaleFilter="Škálování/poměr stran"
|
||||
NoiseGate="Šumová brána"
|
||||
NoiseSuppress="Potlačení šumu"
|
||||
Gain="Zisk"
|
||||
DelayMs="Zpoždění (ms)"
|
||||
Type="Typ"
|
||||
|
|
@ -59,4 +60,5 @@ ScaleFiltering.Point="Bod"
|
|||
ScaleFiltering.Bilinear="Bilineární"
|
||||
ScaleFiltering.Bicubic="Bikubický"
|
||||
ScaleFiltering.Lanczos="Lanczos"
|
||||
NoiseSuppress.SuppressLevel="Úroveň potlačení (dB)"
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ ColorKeyFilter="Color Key"
|
|||
SharpnessFilter="Schärfen"
|
||||
ScaleFilter="Skalierung/Seitenverhältnis"
|
||||
NoiseGate="Noise Gate"
|
||||
NoiseSuppress="Rauschunterdrückung"
|
||||
Gain="Gain"
|
||||
DelayMs="Verzögerung (Millisekunden)"
|
||||
Type="Art"
|
||||
|
|
@ -59,4 +60,5 @@ ScaleFiltering.Point="Point"
|
|||
ScaleFiltering.Bilinear="Bilinear"
|
||||
ScaleFiltering.Bicubic="Bicubic"
|
||||
ScaleFiltering.Lanczos="Lanczos"
|
||||
NoiseSuppress.SuppressLevel="Unterdrückungspegel (dB)"
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ ColorKeyFilter="Filtro de color"
|
|||
SharpnessFilter="Filtro de enfoque"
|
||||
ScaleFilter="Escala/Relación de Aspecto"
|
||||
NoiseGate="Puerta anti-ruidos"
|
||||
NoiseSuppress="Eliminación de ruido"
|
||||
Gain="Ganancia"
|
||||
DelayMs="Retardo (milisegundos)"
|
||||
Type="Tipo"
|
||||
|
|
@ -59,4 +60,5 @@ ScaleFiltering.Point="Punto"
|
|||
ScaleFiltering.Bilinear="Bilineal"
|
||||
ScaleFiltering.Bicubic="Bicúbico"
|
||||
ScaleFiltering.Lanczos="Lanczos"
|
||||
NoiseSuppress.SuppressLevel="Nivel de eliminación de ruido (dB)"
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ ColorKeyFilter="Kolore gakoa"
|
|||
SharpnessFilter="Enfokea"
|
||||
ScaleFilter="Eskala/Aspektu-erlazioa"
|
||||
NoiseGate="Zarata atalasea"
|
||||
NoiseSuppress="Zarata kendu"
|
||||
Gain="Irabazia"
|
||||
DelayMs="Atzerapena (milisegundo)"
|
||||
Type="Mota"
|
||||
|
|
@ -59,4 +60,5 @@ ScaleFiltering.Point="Puntua"
|
|||
ScaleFiltering.Bilinear="Bilineala"
|
||||
ScaleFiltering.Bicubic="Bikubikoa"
|
||||
ScaleFiltering.Lanczos="Lanczos"
|
||||
NoiseSuppress.SuppressLevel="Kenketaren maila (dB)"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,14 @@
|
|||
ColorFilter="Värinkorjaus"
|
||||
MaskFilter="Kuvamaski/Sekoitus"
|
||||
AsyncDelayFilter="Kuvan viive (Async)"
|
||||
CropFilter="Rajaa"
|
||||
ScrollFilter="Vieritä"
|
||||
ChromaKeyFilter="Läpinäkyvä tausta"
|
||||
ColorKeyFilter="Väriavain"
|
||||
SharpnessFilter="Terävöitä"
|
||||
ScaleFilter="Skaalaus/Kuvasuhde"
|
||||
NoiseGate="Noise Gate"
|
||||
NoiseSuppress="Melunvaimennus"
|
||||
Gain="Vahvistus"
|
||||
DelayMs="Viive (millisekuntia)"
|
||||
Type="Tyyppi"
|
||||
|
|
@ -50,4 +53,12 @@ NoiseGate.HoldTime="Pitoaika (millisekuntia)"
|
|||
NoiseGate.ReleaseTime="Vapautumisaika (millisekuntia)"
|
||||
Gain.GainDB="Vahvistus (dB)"
|
||||
StretchImage="Venytä kuvaa (Ohita kuvasuhde)"
|
||||
Resolution="Resoluutio"
|
||||
None="Ei mitään"
|
||||
ScaleFiltering="Skaalauksen suodatus"
|
||||
ScaleFiltering.Point="Piste"
|
||||
ScaleFiltering.Bilinear="Bilinear"
|
||||
ScaleFiltering.Bicubic="Bicubic"
|
||||
ScaleFiltering.Lanczos="Lanczos"
|
||||
NoiseSuppress.SuppressLevel="Vaimennustaso (dB)"
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ ColorKeyFilter="Couleur d'incrustation"
|
|||
SharpnessFilter="Accentuer"
|
||||
ScaleFilter="Mise à l’échelle / Ratio d'affichage"
|
||||
NoiseGate="Noise Gate"
|
||||
NoiseSuppress="Suppression du bruit"
|
||||
Gain="Gain"
|
||||
DelayMs="Retard (en millisecondes)"
|
||||
Type="Type "
|
||||
|
|
@ -59,4 +60,5 @@ ScaleFiltering.Point="Point"
|
|||
ScaleFiltering.Bilinear="Bilinéaire"
|
||||
ScaleFiltering.Bicubic="Bicubique"
|
||||
ScaleFiltering.Lanczos="Lanczos"
|
||||
NoiseSuppress.SuppressLevel="Seuil de suppression (en dB)"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,14 @@
|
|||
ColorFilter="Promena boja"
|
||||
MaskFilter="Slika maske i stapanja"
|
||||
AsyncDelayFilter="Video pauza (asinhrono)"
|
||||
CropFilter="Odsecanje/okvir"
|
||||
ScrollFilter="Pomeranje"
|
||||
ChromaKeyFilter="Ključ providnosti"
|
||||
ColorKeyFilter="Ključ boje"
|
||||
SharpnessFilter="Izoštravanje"
|
||||
ScaleFilter="Uvećanje/Odnos"
|
||||
NoiseGate="Kapija šuma"
|
||||
NoiseSuppress="Suzbijanje šuma"
|
||||
Gain="Pojačanje"
|
||||
DelayMs="Pauza (milisekunde)"
|
||||
Type="Vrsta"
|
||||
|
|
@ -50,4 +53,12 @@ NoiseGate.HoldTime="Vreme zadržavanja (milisekunde)"
|
|||
NoiseGate.ReleaseTime="Vreme otpuštanja (milisekunde)"
|
||||
Gain.GainDB="Pojačanje (dB)"
|
||||
StretchImage="Istegni sliku (zanemari odnos visine i širine slike)"
|
||||
Resolution="Rezolucija"
|
||||
None="Nijedno"
|
||||
ScaleFiltering="Filter uvećanja"
|
||||
ScaleFiltering.Point="Tačka"
|
||||
ScaleFiltering.Bilinear="Bilinearno"
|
||||
ScaleFiltering.Bicubic="Bikubično"
|
||||
ScaleFiltering.Lanczos="Lankoz"
|
||||
NoiseSuppress.SuppressLevel="Nivo suzbijanja (dB)"
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ ColorKeyFilter="Színkulcs"
|
|||
SharpnessFilter="Élesítés"
|
||||
ScaleFilter="Méretezés/Képarány"
|
||||
NoiseGate="Zajgát"
|
||||
NoiseSuppress="Zajcsökkentés"
|
||||
Gain="Erősítés"
|
||||
DelayMs="Késleltetés (ezredmásodperc)"
|
||||
Type="Típus"
|
||||
|
|
@ -59,4 +60,5 @@ ScaleFiltering.Point="Pont"
|
|||
ScaleFiltering.Bilinear="Bilineáris"
|
||||
ScaleFiltering.Bicubic="Kettős köbös"
|
||||
ScaleFiltering.Lanczos="Lanczos"
|
||||
NoiseSuppress.SuppressLevel="Csökkentési szint (dB)"
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ ColorKeyFilter="Chiave Colore"
|
|||
SharpnessFilter="Nitidizza"
|
||||
ScaleFilter="Ridimensionamento/Aspect Ratio"
|
||||
NoiseGate="Noise Gate"
|
||||
NoiseSuppress="Soppressione rumore"
|
||||
Gain="Incremento"
|
||||
DelayMs="Ritardo (millisecondi)"
|
||||
Type="Tipo"
|
||||
|
|
@ -59,4 +60,5 @@ ScaleFiltering.Point="Punto"
|
|||
ScaleFiltering.Bilinear="Bilineare"
|
||||
ScaleFiltering.Bicubic="Bicubico"
|
||||
ScaleFiltering.Lanczos="Lanczos"
|
||||
NoiseSuppress.SuppressLevel="Livello di soppressione (dB)"
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ ColorKeyFilter="カラーキー"
|
|||
SharpnessFilter="シャープ"
|
||||
ScaleFilter="スケーリング/アスペクト比"
|
||||
NoiseGate="ノイズゲート"
|
||||
NoiseSuppress="ノイズ抑制"
|
||||
Gain="ゲイン"
|
||||
DelayMs="遅延時間 (ミリ秒)"
|
||||
Type="種別"
|
||||
|
|
@ -59,4 +60,5 @@ ScaleFiltering.Point="ポイント"
|
|||
ScaleFiltering.Bilinear="バイリニア"
|
||||
ScaleFiltering.Bicubic="バイキュービック"
|
||||
ScaleFiltering.Lanczos="ランチョス"
|
||||
NoiseSuppress.SuppressLevel="抑制レベル (dB)"
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ ColorKeyFilter="색상 키"
|
|||
SharpnessFilter="선명하게"
|
||||
ScaleFilter="비례축소/가로세로 비율"
|
||||
NoiseGate="노이즈 게이트"
|
||||
NoiseSuppress="소음 억제"
|
||||
Gain="증폭"
|
||||
DelayMs="지연 (밀리초)"
|
||||
Type="형식"
|
||||
|
|
@ -29,8 +30,8 @@ KeyColor="키 색상"
|
|||
Similarity="유사성 (1-1000)"
|
||||
Smoothness="매끄러움 (1-1000)"
|
||||
ColorSpillReduction="키 색상 유출 감소 (1-1000)"
|
||||
Crop.Left="좌측"
|
||||
Crop.Right="우측"
|
||||
Crop.Left="왼쪽"
|
||||
Crop.Right="오른쪽"
|
||||
Crop.Top="상단"
|
||||
Crop.Bottom="하단"
|
||||
Crop.Width="너비"
|
||||
|
|
@ -59,4 +60,5 @@ ScaleFiltering.Point="점"
|
|||
ScaleFiltering.Bilinear="이중선형"
|
||||
ScaleFiltering.Bicubic="쌍삼차"
|
||||
ScaleFiltering.Lanczos="란초스"
|
||||
NoiseSuppress.SuppressLevel="억제 세기 (dB)"
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ ColorKeyFilter="Color Key"
|
|||
SharpnessFilter="Verscherpen"
|
||||
ScaleFilter="Schalen/Aspect Ratio"
|
||||
NoiseGate="Noise Gate"
|
||||
NoiseSuppress="Ruisonderdrukking"
|
||||
Gain="Gain"
|
||||
DelayMs="Vertraging (milliseconden)"
|
||||
Type="Type"
|
||||
|
|
@ -59,4 +60,5 @@ ScaleFiltering.Point="Point"
|
|||
ScaleFiltering.Bilinear="Bilinear"
|
||||
ScaleFiltering.Bicubic="Bicubic"
|
||||
ScaleFiltering.Lanczos="Lanczos"
|
||||
NoiseSuppress.SuppressLevel="Onderdrukkingsniveau (dB)"
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ ColorKeyFilter="Kluczowanie koloru (kolor)"
|
|||
SharpnessFilter="Wyostrzanie"
|
||||
ScaleFilter="Skalowanie/proporcje"
|
||||
NoiseGate="Bramka szumów"
|
||||
NoiseSuppress="Tłumienie hałasu"
|
||||
Gain="Poziom"
|
||||
DelayMs="Opóźnienie (milisekundy)"
|
||||
Type="Typ"
|
||||
|
|
@ -59,4 +60,5 @@ ScaleFiltering.Point="Punktowe"
|
|||
ScaleFiltering.Bilinear="Dwuliniowe"
|
||||
ScaleFiltering.Bicubic="Dwusześcienne"
|
||||
ScaleFiltering.Lanczos="Lanczos"
|
||||
NoiseSuppress.SuppressLevel="Poziom tłumienia (dB)"
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,9 @@ ScrollFilter="Rolagem"
|
|||
ChromaKeyFilter="Chroma Key"
|
||||
ColorKeyFilter="Color Key"
|
||||
SharpnessFilter="Nitidez"
|
||||
ScaleFilter="Dimensionamento/proporção"
|
||||
NoiseGate="Filtro de Rúido"
|
||||
NoiseSuppress="Redução de ruídos"
|
||||
Gain="Ganho"
|
||||
DelayMs="Atraso (milissegundos)"
|
||||
Type="Tipo"
|
||||
|
|
@ -50,4 +52,12 @@ NoiseGate.HoldTime="Tempo de Bloqueio (milissegundos)"
|
|||
NoiseGate.ReleaseTime="Tempo de libertação (milissegundos)"
|
||||
Gain.GainDB="Ganho (dB)"
|
||||
StretchImage="Esticar a Imagem (descartar aspecto da imagem)"
|
||||
Resolution="Resolução"
|
||||
None="Nenhum"
|
||||
ScaleFiltering="Filtragem de escala"
|
||||
ScaleFiltering.Point="Ponto"
|
||||
ScaleFiltering.Bilinear="Bilinear"
|
||||
ScaleFiltering.Bicubic="Bicúbico"
|
||||
ScaleFiltering.Lanczos="Lanczos"
|
||||
NoiseSuppress.SuppressLevel="Nível de redução (dB)"
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ ColorKeyFilter="Цветовой ключ"
|
|||
SharpnessFilter="Увеличить резкость"
|
||||
ScaleFilter="Коэффициент Масштабирования/Аспект"
|
||||
NoiseGate="Подавление шума"
|
||||
NoiseSuppress="Шумоподавление"
|
||||
Gain="Усиление"
|
||||
DelayMs="Задержка (миллисекунд)"
|
||||
Type="Тип"
|
||||
|
|
@ -58,5 +59,6 @@ ScaleFiltering="Масштаб Фильтрации"
|
|||
ScaleFiltering.Point="Точечная"
|
||||
ScaleFiltering.Bilinear="Билинейная"
|
||||
ScaleFiltering.Bicubic="Бикубическая"
|
||||
ScaleFiltering.Lanczos="Ланцошная"
|
||||
ScaleFiltering.Lanczos="Метод Ланцоша"
|
||||
NoiseSuppress.SuppressLevel="Уровень подавления (дБ)"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,14 @@
|
|||
ColorFilter="Promena boja"
|
||||
MaskFilter="Slika maske i stapanja"
|
||||
AsyncDelayFilter="Video pauza (asinhrono)"
|
||||
CropFilter="Odsecanje/okvir"
|
||||
ScrollFilter="Pomeranje"
|
||||
ChromaKeyFilter="Ključ providnosti"
|
||||
ColorKeyFilter="Ključ boje"
|
||||
SharpnessFilter="Izoštravanje"
|
||||
ScaleFilter="Uvećanje/Odnos"
|
||||
NoiseGate="Kapija šuma"
|
||||
NoiseSuppress="Suzbijanje šuma"
|
||||
Gain="Pojačanje"
|
||||
DelayMs="Pauza (milisekunde)"
|
||||
Type="Vrsta"
|
||||
|
|
@ -50,4 +53,12 @@ NoiseGate.HoldTime="Vreme zadržavanja (milisekunde)"
|
|||
NoiseGate.ReleaseTime="Vreme otpuštanja (milisekunde)"
|
||||
Gain.GainDB="Pojačanje (dB)"
|
||||
StretchImage="Istegni sliku (zanemari odnos visine i širine slike)"
|
||||
Resolution="Rezolucija"
|
||||
None="Nijedno"
|
||||
ScaleFiltering="Filter uvećanja"
|
||||
ScaleFiltering.Point="Tačka"
|
||||
ScaleFiltering.Bilinear="Bilinearno"
|
||||
ScaleFiltering.Bicubic="Bikubično"
|
||||
ScaleFiltering.Lanczos="Lankoz"
|
||||
NoiseSuppress.SuppressLevel="Nivo suzbijanja (dB)"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,14 @@
|
|||
ColorFilter="Промена боја"
|
||||
MaskFilter="Слика маске и стапања"
|
||||
AsyncDelayFilter="Видео пауза (асинхроно)"
|
||||
CropFilter="Одсецање/оквир"
|
||||
ScrollFilter="Померање"
|
||||
ChromaKeyFilter="Кључ провидности"
|
||||
ColorKeyFilter="Кључ боје"
|
||||
SharpnessFilter="Изоштравање"
|
||||
ScaleFilter="Увећање/однос"
|
||||
NoiseGate="Капија шума"
|
||||
NoiseSuppress="Сузбијање шума"
|
||||
Gain="Појачање"
|
||||
DelayMs="Пауза (милисекунде)"
|
||||
Type="Врста"
|
||||
|
|
@ -50,4 +53,12 @@ NoiseGate.HoldTime="Време задржавања (милисекунде)"
|
|||
NoiseGate.ReleaseTime="Време отпуштања (милисекунде)"
|
||||
Gain.GainDB="Појачање (dB)"
|
||||
StretchImage="Истегни слику (занемари однос висине и ширине слике)"
|
||||
Resolution="Резолуција"
|
||||
None="Ниједно"
|
||||
ScaleFiltering="Филтер увећања"
|
||||
ScaleFiltering.Point="Тачка"
|
||||
ScaleFiltering.Bilinear="Билинеарно"
|
||||
ScaleFiltering.Bicubic="Бикубично"
|
||||
ScaleFiltering.Lanczos="Ланкоз"
|
||||
NoiseSuppress.SuppressLevel="Ниво сузбијања (dB)"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,14 @@
|
|||
ColorFilter="Färgkorrigering"
|
||||
MaskFilter="Bild Mask/Blandning"
|
||||
AsyncDelayFilter="Videofördröjning (Async)"
|
||||
CropFilter="Beskär/Fyll ut"
|
||||
ScrollFilter="Scrollning"
|
||||
ChromaKeyFilter="Kromafilter"
|
||||
ColorKeyFilter="Färgfilter"
|
||||
SharpnessFilter="Skärpa"
|
||||
ScaleFilter="Skalning/Bildförhållande"
|
||||
NoiseGate="Brusblockering"
|
||||
NoiseSuppress="Brusreducering"
|
||||
Gain="Förstärkning"
|
||||
DelayMs="Fördröjning (millisekunder)"
|
||||
Type="Typ"
|
||||
|
|
@ -54,7 +56,9 @@ StretchImage="Sträck bild (ignorera bildförhållandet)"
|
|||
Resolution="Upplösning"
|
||||
None="Ingen"
|
||||
ScaleFiltering="Skalningsfiltrering"
|
||||
ScaleFiltering.Point="Punkt"
|
||||
ScaleFiltering.Bilinear="Bilinjär"
|
||||
ScaleFiltering.Bicubic="Bikubisk"
|
||||
ScaleFiltering.Lanczos="Lanczos"
|
||||
NoiseSuppress.SuppressLevel="Brusreduceringsnivå (dB)"
|
||||
|
||||
|
|
|
|||
64
plugins/obs-filters/data/locale/uk-UA.ini
Normal file
64
plugins/obs-filters/data/locale/uk-UA.ini
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
ColorFilter="Коригування кольору"
|
||||
MaskFilter="Маска до зображення"
|
||||
AsyncDelayFilter="Затримка відео (асинхронна)"
|
||||
CropFilter="Кадрування"
|
||||
ScrollFilter="Фільтр прокрутки"
|
||||
ChromaKeyFilter="Зелений екран"
|
||||
ColorKeyFilter="Фільтрування за кольором"
|
||||
SharpnessFilter="Різкість"
|
||||
ScaleFilter="Масштабування/пропорції"
|
||||
NoiseGate="Пороговий шумопонижувач"
|
||||
NoiseSuppress="Подавлення шуму"
|
||||
Gain="Підсилення"
|
||||
DelayMs="Затримка (мілісекунд)"
|
||||
Type="Тип"
|
||||
MaskBlendType.MaskColor="Альфа-маска (з каналу кольору)"
|
||||
MaskBlendType.MaskAlpha="Альфа-маска (з альфа-каналу)"
|
||||
MaskBlendType.BlendMultiply="Змішування (множення)"
|
||||
MaskBlendType.BlendAddition="Змішування (додавання)"
|
||||
MaskBlendType.BlendSubtraction="Змішування (віднімання)"
|
||||
Path="Шлях"
|
||||
Color="Колір"
|
||||
Opacity="Непрозорість"
|
||||
Contrast="Контрастність"
|
||||
Brightness="Яскравість"
|
||||
Gamma="Гамма-корекція"
|
||||
BrowsePath.Images="Файли зображень"
|
||||
BrowsePath.AllFiles="Всі файли"
|
||||
KeyColorType="Вид кольору для фільтрування"
|
||||
KeyColor="Колір що фільтрується"
|
||||
Similarity="Подібність (1-1000)"
|
||||
Smoothness="Плавність (1-1000)"
|
||||
ColorSpillReduction="Зменшення проникнення кольору (1-1000)"
|
||||
Crop.Left="Ліворуч"
|
||||
Crop.Right="Праворуч"
|
||||
Crop.Top="Зверху"
|
||||
Crop.Bottom="Знизу"
|
||||
Crop.Width="Ширина"
|
||||
Crop.Height="Висота"
|
||||
Crop.Relative="Відносні"
|
||||
ScrollFilter.SpeedX="Горизонтальна швидкість"
|
||||
ScrollFilter.SpeedY="Вертикальна швидкість"
|
||||
ScrollFilter.LimitWidth="Обмежити ширину"
|
||||
ScrollFilter.LimitHeight="Обмежити висоту"
|
||||
CustomColor="Колір за користувачем"
|
||||
Red="Червоний"
|
||||
Green="Зелений"
|
||||
Blue="Синій"
|
||||
Magenta="Пурпуровий"
|
||||
NoiseGate.OpenThreshold="Поріг відкриття (дБ)"
|
||||
NoiseGate.CloseThreshold="Поріг закриття (дБ)"
|
||||
NoiseGate.AttackTime="Тривалість фронту сигналу (мілісекунд)"
|
||||
NoiseGate.HoldTime="Тривалість сигналу (мілісекунд)"
|
||||
NoiseGate.ReleaseTime="Тривалість спаду сигналу (мілісекунд)"
|
||||
Gain.GainDB="Підсилення (дБ)"
|
||||
StretchImage="Розтягнути зображення (ігнорувати пропорції зображення)"
|
||||
Resolution="Новий розмір"
|
||||
None="Не вказано"
|
||||
ScaleFiltering="Фільтр масштабування"
|
||||
ScaleFiltering.Point="Ступінчастий"
|
||||
ScaleFiltering.Bilinear="Білінійний"
|
||||
ScaleFiltering.Bicubic="Бікубічний"
|
||||
ScaleFiltering.Lanczos="Ланцош"
|
||||
NoiseSuppress.SuppressLevel="Рівень подавлення (дБ)"
|
||||
|
||||
|
|
@ -8,6 +8,7 @@ ColorKeyFilter="色值"
|
|||
SharpnessFilter="锐化"
|
||||
ScaleFilter="缩放比例"
|
||||
NoiseGate="噪音阈值"
|
||||
NoiseSuppress="噪声抑制"
|
||||
Gain="增益"
|
||||
DelayMs="延迟(毫秒)"
|
||||
Type="类型"
|
||||
|
|
@ -59,4 +60,5 @@ ScaleFiltering.Point="点"
|
|||
ScaleFiltering.Bilinear="双线性算法"
|
||||
ScaleFiltering.Bicubic="双立方算法"
|
||||
ScaleFiltering.Lanczos="兰索斯算法"
|
||||
NoiseSuppress.SuppressLevel="抑制程度 (dB)"
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ ColorKeyFilter="色彩鍵"
|
|||
SharpnessFilter="銳化"
|
||||
ScaleFilter="縮放/長寬比"
|
||||
NoiseGate="噪音閾"
|
||||
NoiseSuppress="雜訊抑制"
|
||||
Gain="增益"
|
||||
DelayMs="延遲 (毫秒)"
|
||||
Type="類型"
|
||||
|
|
@ -59,4 +60,5 @@ ScaleFiltering.Point="點"
|
|||
ScaleFiltering.Bilinear="雙線性插值"
|
||||
ScaleFiltering.Bicubic="雙三次插值"
|
||||
ScaleFiltering.Lanczos="Lanczos"
|
||||
NoiseSuppress.SuppressLevel="抑制標準 (dB)"
|
||||
|
||||
|
|
|
|||
|
|
@ -277,7 +277,7 @@ static obs_properties_t *noise_suppress_properties(void *data)
|
|||
obs_properties_t *ppts = obs_properties_create();
|
||||
|
||||
obs_properties_add_int_slider(ppts, S_SUPPRESS_LEVEL,
|
||||
TEXT_SUPPRESS_LEVEL, SUP_MIN, SUP_MAX, 0);
|
||||
TEXT_SUPPRESS_LEVEL, SUP_MIN, SUP_MAX, 1);
|
||||
|
||||
UNUSED_PARAMETER(data);
|
||||
return ppts;
|
||||
|
|
|
|||
4
plugins/obs-libfdk/data/locale/uk-UA.ini
Normal file
4
plugins/obs-libfdk/data/locale/uk-UA.ini
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
LibFDK="libfdk AAC енкодер"
|
||||
Bitrate="Бітрейт"
|
||||
Afterburner="Увімкнути AAC форсаж"
|
||||
|
||||
|
|
@ -2,4 +2,5 @@ RTMPStream="Flux RTMP"
|
|||
RTMPStream.DropThreshold="Llindar d'abandonament (en mil·lisegons)"
|
||||
FLVOutput="Sortida del fitxer FLV"
|
||||
FLVOutput.FilePath="Camí del fitxer"
|
||||
Default="Per defecte"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,4 +2,5 @@ RTMPStream="RTMP Stream"
|
|||
RTMPStream.DropThreshold="Práh ztrát (milisekundy)"
|
||||
FLVOutput="Výstup do FLV souboru"
|
||||
FLVOutput.FilePath="Cesta k souboru"
|
||||
Default="Výchozí"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,4 +2,5 @@ RTMPStream="RTMP Stream"
|
|||
RTMPStream.DropThreshold="Drop Threshold (Millisekunden)"
|
||||
FLVOutput="FLV Dateiausgabe"
|
||||
FLVOutput.FilePath="Dateipfad"
|
||||
Default="Standard"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,4 +2,5 @@ RTMPStream="Retransmisión RTMP"
|
|||
RTMPStream.DropThreshold="Umbral límite (milisegundos)"
|
||||
FLVOutput="Archivo de salida FLV"
|
||||
FLVOutput.FilePath="Ruta de archivo"
|
||||
Default="Por defecto"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,4 +2,5 @@ RTMPStream="RTMP Jarioa"
|
|||
RTMPStream.DropThreshold="Galera atalasea (milisegundoak)"
|
||||
FLVOutput="FLV irteera fitxategia"
|
||||
FLVOutput.FilePath="Fitxategiaren bidea"
|
||||
Default="Lehenetsia"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,4 +2,5 @@ RTMPStream="RTMP-virtaus"
|
|||
RTMPStream.DropThreshold="Pudotuskynnys (millisekuntia)"
|
||||
FLVOutput="FLV-tiedosto ulostulo"
|
||||
FLVOutput.FilePath="Tiedostopolku"
|
||||
Default="Oletusarvo"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,4 +2,5 @@ RTMPStream="Flux RTMP"
|
|||
RTMPStream.DropThreshold="Seuil de baisse (en millisecondes)"
|
||||
FLVOutput="Fichier FLV sortant"
|
||||
FLVOutput.FilePath="Chemin du fichier"
|
||||
Default="Interface par défaut"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,4 +2,5 @@ RTMPStream="RTMP strim"
|
|||
RTMPStream.DropThreshold="Tolerancija ispuštanja (milisekunde)"
|
||||
FLVOutput="Izlaz u FLV datoteku"
|
||||
FLVOutput.FilePath="Putanja datoteke"
|
||||
Default="Podrazumevani"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,4 +2,5 @@ RTMPStream="RTMP stream"
|
|||
RTMPStream.DropThreshold="Ejtési küszöb (ezredmásodperc)"
|
||||
FLVOutput="FLV kimeneti fájl"
|
||||
FLVOutput.FilePath="Fájl elérési útja"
|
||||
Default="Alapértelmezett"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,4 +2,5 @@ RTMPStream="Stream RTMP"
|
|||
RTMPStream.DropThreshold="Abbassa il limite (millisecondi)"
|
||||
FLVOutput="Uscita file FLV"
|
||||
FLVOutput.FilePath="Destinazione file"
|
||||
Default="Predefinito"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,4 +2,5 @@ RTMPStream="RTMP ストリーム"
|
|||
RTMPStream.DropThreshold="ドロップしきい値 (ミリ秒)"
|
||||
FLVOutput="FLV ファイル出力"
|
||||
FLVOutput.FilePath="ファイルのパス"
|
||||
Default="既定"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,4 +2,5 @@ RTMPStream="RTMP 스트림"
|
|||
RTMPStream.DropThreshold="드롭 역치값 (밀리세컨드)"
|
||||
FLVOutput="FLV 파일 출력"
|
||||
FLVOutput.FilePath="파일 경로"
|
||||
Default="기본값"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,4 +2,5 @@ RTMPStream="RTMP Stream"
|
|||
RTMPStream.DropThreshold="Uitvaldrempel (milliseconden)"
|
||||
FLVOutput="FLV Bestandsuitvoer"
|
||||
FLVOutput.FilePath="Bestandspad"
|
||||
Default="Standaard"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,4 +2,5 @@ RTMPStream="Strumień RTMP"
|
|||
RTMPStream.DropThreshold="Próg odrzucania (w milisekundach)"
|
||||
FLVOutput="Wyjście do pliku FLV"
|
||||
FLVOutput.FilePath="Scieżka do pliku"
|
||||
Default="Domyślne"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,4 +2,5 @@ RTMPStream="Stream RTMP"
|
|||
RTMPStream.DropThreshold="Limiar de Corte (milissegundos)"
|
||||
FLVOutput="Arquivo de Saída FLV"
|
||||
FLVOutput.FilePath="Caminho do Arquivo"
|
||||
Default="Padrão"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,4 +2,5 @@ RTMPStream="Поток RTMP"
|
|||
RTMPStream.DropThreshold="Нижний порог (мс)"
|
||||
FLVOutput="Выходной файл FLV"
|
||||
FLVOutput.FilePath="Путь к файлу"
|
||||
Default="По умолчанию"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,4 +2,5 @@ RTMPStream="RTMP strim"
|
|||
RTMPStream.DropThreshold="Tolerancija ispuštanja (milisekunde)"
|
||||
FLVOutput="Izlaz u FLV datoteku"
|
||||
FLVOutput.FilePath="Putanja datoteke"
|
||||
Default="Podrazumevani"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,4 +2,5 @@ RTMPStream="RTMP стрим"
|
|||
RTMPStream.DropThreshold="Толеранција испуштања (milisekunde)"
|
||||
FLVOutput="Излаз у FLV датотеку"
|
||||
FLVOutput.FilePath="Путања датотеке"
|
||||
Default="Подразумевана"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,4 +2,5 @@ RTMPStream="RTMP-ström"
|
|||
RTMPStream.DropThreshold="Tappgräns (ms)"
|
||||
FLVOutput="FLV-filutmatning"
|
||||
FLVOutput.FilePath="Sökväg"
|
||||
Default="Standard"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,6 @@
|
|||
RTMPStream="RTMP потік"
|
||||
RTMPStream.DropThreshold="Поріг втрат (мілісекунд)"
|
||||
FLVOutput="Вивід FLV файлу"
|
||||
FLVOutput.FilePath="Шлях до файлу"
|
||||
Default="За замовчанням"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,4 +2,5 @@ RTMPStream="RTMP 流"
|
|||
RTMPStream.DropThreshold="Drop阈值(毫秒)"
|
||||
FLVOutput="FLV 文件输出"
|
||||
FLVOutput.FilePath="文件路径"
|
||||
Default="默认"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,4 +2,5 @@ RTMPStream="RTMP 串流"
|
|||
RTMPStream.DropThreshold="丟棄閾值 (毫秒)"
|
||||
FLVOutput="FLV 檔案輸出"
|
||||
FLVOutput.FilePath="檔案路徑"
|
||||
Default="預設"
|
||||
|
||||
|
|
|
|||
|
|
@ -695,10 +695,10 @@ add_addr_info(struct sockaddr_storage *service, socklen_t *addrlen, AVal *host,
|
|||
goto finish;
|
||||
}
|
||||
|
||||
// they should come back in OS preferred order
|
||||
// prefer ipv4 results, since lots of ISPs have broken ipv6 connectivity
|
||||
for (ptr = result; ptr != NULL; ptr = ptr->ai_next)
|
||||
{
|
||||
if (ptr->ai_family == AF_INET || ptr->ai_family == AF_INET6)
|
||||
if (ptr->ai_family == AF_INET)
|
||||
{
|
||||
memcpy(service, ptr->ai_addr, ptr->ai_addrlen);
|
||||
*addrlen = (socklen_t)ptr->ai_addrlen;
|
||||
|
|
@ -706,6 +706,19 @@ add_addr_info(struct sockaddr_storage *service, socklen_t *addrlen, AVal *host,
|
|||
}
|
||||
}
|
||||
|
||||
if (!*addrlen)
|
||||
{
|
||||
for (ptr = result; ptr != NULL; ptr = ptr->ai_next)
|
||||
{
|
||||
if (ptr->ai_family == AF_INET6)
|
||||
{
|
||||
memcpy(service, ptr->ai_addr, ptr->ai_addrlen);
|
||||
*addrlen = (socklen_t)ptr->ai_addrlen;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
freeaddrinfo(result);
|
||||
|
||||
if (service->ss_family == AF_UNSPEC || *addrlen == 0)
|
||||
|
|
@ -3091,7 +3104,10 @@ HandleInvoke(RTMP *r, const char *body, unsigned int nBodySize)
|
|||
{
|
||||
RTMP_Log(RTMP_LOGERROR, "rtmp server requested close");
|
||||
RTMP_Close(r);
|
||||
#if defined(CRYPTO) || defined(USE_ONLY_MD5)
|
||||
|
||||
// disabled this for now, if the server sends an rtmp close message librtmp
|
||||
// will enter an infinite loop here until stack is exhausted.
|
||||
#if 0 && (defined(CRYPTO) || defined(USE_ONLY_MD5))
|
||||
if ((r->Link.protocol & RTMP_FEATURE_WRITE) &&
|
||||
!(r->Link.pFlags & RTMP_PUB_CLEAN) &&
|
||||
( !(r->Link.pFlags & RTMP_PUB_NAME) ||
|
||||
|
|
|
|||
|
|
@ -42,11 +42,23 @@
|
|||
#define debug(format, ...) do_log(LOG_DEBUG, format, ##__VA_ARGS__)
|
||||
|
||||
#define OPT_DROP_THRESHOLD "drop_threshold_ms"
|
||||
#define OPT_PFRAME_DROP_THRESHOLD "pframe_drop_threshold_ms"
|
||||
#define OPT_MAX_SHUTDOWN_TIME_SEC "max_shutdown_time_sec"
|
||||
#define OPT_BIND_IP "bind_ip"
|
||||
|
||||
//#define TEST_FRAMEDROPS
|
||||
|
||||
#ifdef TEST_FRAMEDROPS
|
||||
|
||||
#define DROPTEST_MAX_KBPS 3000
|
||||
#define DROPTEST_MAX_BYTES (DROPTEST_MAX_KBPS * 1000 / 8)
|
||||
|
||||
struct droptest_info {
|
||||
uint64_t ts;
|
||||
size_t size;
|
||||
};
|
||||
#endif
|
||||
|
||||
struct rtmp_stream {
|
||||
obs_output_t *output;
|
||||
|
||||
|
|
@ -66,6 +78,7 @@ struct rtmp_stream {
|
|||
os_sem_t *send_sem;
|
||||
os_event_t *stop_event;
|
||||
uint64_t stop_ts;
|
||||
uint64_t shutdown_timeout_ts;
|
||||
|
||||
struct dstr path, key;
|
||||
struct dstr username, password;
|
||||
|
|
@ -75,6 +88,8 @@ struct rtmp_stream {
|
|||
/* frame drop variables */
|
||||
int64_t drop_threshold_usec;
|
||||
int64_t min_drop_dts_usec;
|
||||
int64_t pframe_drop_threshold_usec;
|
||||
int64_t pframe_min_drop_dts_usec;
|
||||
int min_priority;
|
||||
|
||||
int64_t last_dts_usec;
|
||||
|
|
@ -82,6 +97,11 @@ struct rtmp_stream {
|
|||
uint64_t total_bytes_sent;
|
||||
int dropped_frames;
|
||||
|
||||
#ifdef TEST_FRAMEDROPS
|
||||
struct circlebuf droptest_info;
|
||||
size_t droptest_size;
|
||||
#endif
|
||||
|
||||
RTMP rtmp;
|
||||
};
|
||||
|
||||
|
|
@ -172,6 +192,9 @@ static void rtmp_stream_destroy(void *data)
|
|||
os_sem_destroy(stream->send_sem);
|
||||
pthread_mutex_destroy(&stream->packets_mutex);
|
||||
circlebuf_free(&stream->packets);
|
||||
#ifdef TEST_FRAMEDROPS
|
||||
circlebuf_free(&stream->droptest_info);
|
||||
#endif
|
||||
bfree(stream);
|
||||
}
|
||||
}
|
||||
|
|
@ -203,7 +226,7 @@ static void rtmp_stream_stop(void *data, uint64_t ts)
|
|||
{
|
||||
struct rtmp_stream *stream = data;
|
||||
|
||||
if (stopping(stream))
|
||||
if (stopping(stream) && ts != 0)
|
||||
return;
|
||||
|
||||
if (connecting(stream))
|
||||
|
|
@ -212,6 +235,10 @@ static void rtmp_stream_stop(void *data, uint64_t ts)
|
|||
stream->stop_ts = ts / 1000ULL;
|
||||
os_event_signal(stream->stop_event);
|
||||
|
||||
if (ts)
|
||||
stream->shutdown_timeout_ts = ts +
|
||||
(uint64_t)stream->max_shutdown_time_sec * 1000000000ULL;
|
||||
|
||||
if (active(stream)) {
|
||||
if (stream->stop_ts == 0)
|
||||
os_sem_post(stream->send_sem);
|
||||
|
|
@ -285,6 +312,40 @@ static bool discard_recv_data(struct rtmp_stream *stream, size_t size)
|
|||
return true;
|
||||
}
|
||||
|
||||
#ifdef TEST_FRAMEDROPS
|
||||
static void droptest_cap_data_rate(struct rtmp_stream *stream, size_t size)
|
||||
{
|
||||
uint64_t ts = os_gettime_ns();
|
||||
struct droptest_info info;
|
||||
|
||||
info.ts = ts;
|
||||
info.size = size;
|
||||
|
||||
circlebuf_push_back(&stream->droptest_info, &info, sizeof(info));
|
||||
stream->droptest_size += size;
|
||||
|
||||
if (stream->droptest_info.size) {
|
||||
circlebuf_peek_front(&stream->droptest_info,
|
||||
&info, sizeof(info));
|
||||
|
||||
if (stream->droptest_size > DROPTEST_MAX_BYTES) {
|
||||
uint64_t elapsed = ts - info.ts;
|
||||
|
||||
if (elapsed < 1000000000ULL) {
|
||||
elapsed = 1000000000ULL - elapsed;
|
||||
os_sleepto_ns(ts + elapsed);
|
||||
}
|
||||
|
||||
while (stream->droptest_size > DROPTEST_MAX_BYTES) {
|
||||
circlebuf_pop_front(&stream->droptest_info,
|
||||
&info, sizeof(info));
|
||||
stream->droptest_size -= info.size;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static int send_packet(struct rtmp_stream *stream,
|
||||
struct encoder_packet *packet, bool is_header, size_t idx)
|
||||
{
|
||||
|
|
@ -306,9 +367,11 @@ static int send_packet(struct rtmp_stream *stream,
|
|||
}
|
||||
|
||||
flv_packet_mux(packet, &data, &size, is_header);
|
||||
|
||||
#ifdef TEST_FRAMEDROPS
|
||||
os_sleep_ms(rand() % 40);
|
||||
droptest_cap_data_rate(stream, size);
|
||||
#endif
|
||||
|
||||
ret = RTMP_Write(&stream->rtmp, (char*)data, (int)size, (int)idx);
|
||||
bfree(data);
|
||||
|
||||
|
|
@ -320,6 +383,19 @@ static int send_packet(struct rtmp_stream *stream,
|
|||
|
||||
static inline bool send_headers(struct rtmp_stream *stream);
|
||||
|
||||
static inline bool can_shutdown_stream(struct rtmp_stream *stream,
|
||||
struct encoder_packet *packet)
|
||||
{
|
||||
uint64_t cur_time = os_gettime_ns();
|
||||
bool timeout = cur_time >= stream->shutdown_timeout_ts;
|
||||
|
||||
if (timeout)
|
||||
info("Stream shutdown timeout reached (%d second(s))",
|
||||
stream->max_shutdown_time_sec);
|
||||
|
||||
return timeout || packet->sys_dts_usec >= (int64_t)stream->stop_ts;
|
||||
}
|
||||
|
||||
static void *send_thread(void *data)
|
||||
{
|
||||
struct rtmp_stream *stream = data;
|
||||
|
|
@ -337,7 +413,7 @@ static void *send_thread(void *data)
|
|||
continue;
|
||||
|
||||
if (stopping(stream)) {
|
||||
if (packet.sys_dts_usec >= (int64_t)stream->stop_ts) {
|
||||
if (can_shutdown_stream(stream, &packet)) {
|
||||
obs_free_encoder_packet(&packet);
|
||||
break;
|
||||
}
|
||||
|
|
@ -586,18 +662,7 @@ static int try_connect(struct rtmp_stream *stream)
|
|||
|
||||
RTMP_EnableWrite(&stream->rtmp);
|
||||
|
||||
dstr_copy(&stream->encoder_name, "FMLE/3.0 (compatible; obs-studio/");
|
||||
|
||||
#ifdef HAVE_OBSCONFIG_H
|
||||
dstr_cat(&stream->encoder_name, OBS_VERSION);
|
||||
#else
|
||||
dstr_catf(&stream->encoder_name, "%d.%d.%d",
|
||||
LIBOBS_API_MAJOR_VER,
|
||||
LIBOBS_API_MINOR_VER,
|
||||
LIBOBS_API_PATCH_VER);
|
||||
#endif
|
||||
|
||||
dstr_cat(&stream->encoder_name, "; FMSc/1.0)");
|
||||
dstr_copy(&stream->encoder_name, "FMLE/3.0 (compatible; FMSc/1.0)");
|
||||
|
||||
set_rtmp_dstr(&stream->rtmp.Link.pubUser, &stream->username);
|
||||
set_rtmp_dstr(&stream->rtmp.Link.pubPasswd, &stream->password);
|
||||
|
|
@ -652,6 +717,8 @@ static bool init_connect(struct rtmp_stream *stream)
|
|||
obs_service_t *service;
|
||||
obs_data_t *settings;
|
||||
const char *bind_ip;
|
||||
int64_t drop_p;
|
||||
int64_t drop_b;
|
||||
|
||||
if (stopping(stream))
|
||||
pthread_join(stream->send_thread, NULL);
|
||||
|
|
@ -675,11 +742,17 @@ static bool init_connect(struct rtmp_stream *stream)
|
|||
dstr_copy(&stream->password, obs_service_get_password(service));
|
||||
dstr_depad(&stream->path);
|
||||
dstr_depad(&stream->key);
|
||||
stream->drop_threshold_usec =
|
||||
(int64_t)obs_data_get_int(settings, OPT_DROP_THRESHOLD) * 1000;
|
||||
drop_b = (int64_t)obs_data_get_int(settings, OPT_DROP_THRESHOLD);
|
||||
drop_p = (int64_t)obs_data_get_int(settings, OPT_PFRAME_DROP_THRESHOLD);
|
||||
stream->max_shutdown_time_sec =
|
||||
(int)obs_data_get_int(settings, OPT_MAX_SHUTDOWN_TIME_SEC);
|
||||
|
||||
if (drop_p < (drop_b + 200))
|
||||
drop_p = drop_b + 200;
|
||||
|
||||
stream->drop_threshold_usec = 1000 * drop_b;
|
||||
stream->pframe_drop_threshold_usec = 1000 * drop_p;
|
||||
|
||||
bind_ip = obs_data_get_string(settings, OPT_BIND_IP);
|
||||
dstr_copy(&stream->bind_ip, bind_ip);
|
||||
|
||||
|
|
@ -741,14 +814,18 @@ static inline size_t num_buffered_packets(struct rtmp_stream *stream)
|
|||
return stream->packets.size / sizeof(struct encoder_packet);
|
||||
}
|
||||
|
||||
static void drop_frames(struct rtmp_stream *stream)
|
||||
static void drop_frames(struct rtmp_stream *stream, const char *name,
|
||||
int highest_priority, int64_t *p_min_dts_usec)
|
||||
{
|
||||
struct circlebuf new_buf = {0};
|
||||
int drop_priority = 0;
|
||||
uint64_t last_drop_dts_usec = 0;
|
||||
int num_frames_dropped = 0;
|
||||
|
||||
debug("Previous packet count: %d", (int)num_buffered_packets(stream));
|
||||
#ifdef _DEBUG
|
||||
int start_packets = (int)num_buffered_packets(stream);
|
||||
#else
|
||||
UNUSED_PARAMETER(name);
|
||||
#endif
|
||||
|
||||
circlebuf_reserve(&new_buf, sizeof(struct encoder_packet) * 8);
|
||||
|
||||
|
|
@ -760,56 +837,71 @@ static void drop_frames(struct rtmp_stream *stream)
|
|||
|
||||
/* do not drop audio data or video keyframes */
|
||||
if (packet.type == OBS_ENCODER_AUDIO ||
|
||||
packet.drop_priority == OBS_NAL_PRIORITY_HIGHEST) {
|
||||
packet.drop_priority >= highest_priority) {
|
||||
circlebuf_push_back(&new_buf, &packet, sizeof(packet));
|
||||
|
||||
} else {
|
||||
if (drop_priority < packet.drop_priority)
|
||||
drop_priority = packet.drop_priority;
|
||||
|
||||
num_frames_dropped++;
|
||||
obs_free_encoder_packet(&packet);
|
||||
}
|
||||
}
|
||||
|
||||
circlebuf_free(&stream->packets);
|
||||
stream->packets = new_buf;
|
||||
stream->min_priority = drop_priority;
|
||||
stream->min_drop_dts_usec = last_drop_dts_usec;
|
||||
stream->packets = new_buf;
|
||||
|
||||
if (stream->min_priority < highest_priority)
|
||||
stream->min_priority = highest_priority;
|
||||
|
||||
*p_min_dts_usec = last_drop_dts_usec;
|
||||
|
||||
stream->dropped_frames += num_frames_dropped;
|
||||
debug("New packet count: %d", (int)num_buffered_packets(stream));
|
||||
#ifdef _DEBUG
|
||||
debug("Dropped %s, prev packet count: %d, new packet count: %d",
|
||||
name,
|
||||
start_packets,
|
||||
(int)num_buffered_packets(stream));
|
||||
#endif
|
||||
}
|
||||
|
||||
static void check_to_drop_frames(struct rtmp_stream *stream)
|
||||
static void check_to_drop_frames(struct rtmp_stream *stream, bool pframes)
|
||||
{
|
||||
struct encoder_packet first;
|
||||
int64_t buffer_duration_usec;
|
||||
size_t num_packets = num_buffered_packets(stream);
|
||||
const char *name = pframes ? "p-frames" : "b-frames";
|
||||
int priority = pframes ?
|
||||
OBS_NAL_PRIORITY_HIGHEST : OBS_NAL_PRIORITY_HIGH;
|
||||
int64_t *p_min_dts_usec = pframes ?
|
||||
&stream->pframe_min_drop_dts_usec :
|
||||
&stream->min_drop_dts_usec;
|
||||
int64_t drop_threshold = pframes ?
|
||||
stream->pframe_drop_threshold_usec :
|
||||
stream->drop_threshold_usec;
|
||||
|
||||
if (num_buffered_packets(stream) < 5)
|
||||
if (num_packets < 5)
|
||||
return;
|
||||
|
||||
circlebuf_peek_front(&stream->packets, &first, sizeof(first));
|
||||
|
||||
/* do not drop frames if frames were just dropped within this time */
|
||||
if (first.dts_usec < stream->min_drop_dts_usec)
|
||||
if (first.dts_usec < *p_min_dts_usec)
|
||||
return;
|
||||
|
||||
/* if the amount of time stored in the buffered packets waiting to be
|
||||
* sent is higher than threshold, drop frames */
|
||||
buffer_duration_usec = stream->last_dts_usec - first.dts_usec;
|
||||
|
||||
if (buffer_duration_usec > stream->drop_threshold_usec) {
|
||||
drop_frames(stream);
|
||||
debug("dropping %" PRId64 " worth of frames",
|
||||
buffer_duration_usec);
|
||||
if (buffer_duration_usec > drop_threshold) {
|
||||
debug("buffer_duration_usec: %lld", buffer_duration_usec);
|
||||
drop_frames(stream, name, priority, p_min_dts_usec);
|
||||
}
|
||||
}
|
||||
|
||||
static bool add_video_packet(struct rtmp_stream *stream,
|
||||
struct encoder_packet *packet)
|
||||
{
|
||||
check_to_drop_frames(stream);
|
||||
check_to_drop_frames(stream, false);
|
||||
check_to_drop_frames(stream, true);
|
||||
|
||||
/* if currently dropping frames, drop packets until it reaches the
|
||||
* desired priority */
|
||||
|
|
@ -855,8 +947,9 @@ static void rtmp_stream_data(void *data, struct encoder_packet *packet)
|
|||
|
||||
static void rtmp_stream_defaults(obs_data_t *defaults)
|
||||
{
|
||||
obs_data_set_default_int(defaults, OPT_DROP_THRESHOLD, 600);
|
||||
obs_data_set_default_int(defaults, OPT_MAX_SHUTDOWN_TIME_SEC, 5);
|
||||
obs_data_set_default_int(defaults, OPT_DROP_THRESHOLD, 500);
|
||||
obs_data_set_default_int(defaults, OPT_PFRAME_DROP_THRESHOLD, 800);
|
||||
obs_data_set_default_int(defaults, OPT_MAX_SHUTDOWN_TIME_SEC, 30);
|
||||
obs_data_set_default_string(defaults, OPT_BIND_IP, "default");
|
||||
}
|
||||
|
||||
|
|
|
|||
21
plugins/obs-text/CMakeLists.txt
Normal file
21
plugins/obs-text/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
if (NOT WIN32)
|
||||
return()
|
||||
endif()
|
||||
|
||||
project(obs-text)
|
||||
|
||||
if(WIN32)
|
||||
set(obs-text_PLATFORM_SOURCES
|
||||
gdiplus/obs-text.cpp)
|
||||
set(obs-text_PLATFORM_DEPS
|
||||
gdiplus)
|
||||
endif()
|
||||
|
||||
add_library(obs-text MODULE
|
||||
${obs-text_PLATFORM_SOURCES}
|
||||
${obs-text_PLATFORM_HEADERS})
|
||||
target_link_libraries(obs-text
|
||||
libobs
|
||||
${obs-text_PLATFORM_DEPS})
|
||||
|
||||
install_obs_plugin_with_data(obs-text data)
|
||||
30
plugins/obs-text/data/locale/ca-ES.ini
Normal file
30
plugins/obs-text/data/locale/ca-ES.ini
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
TextGDIPlus="Text (GDI+)"
|
||||
Font="Font"
|
||||
Text="Text"
|
||||
ReadFromFile="Llegeix del fitxer"
|
||||
TextFile="Fitxer de text (UTF-8)"
|
||||
Filter.TextFiles="Arxius de text"
|
||||
Filter.AllFiles="Tots els fitxers"
|
||||
Color="Color"
|
||||
Opacity="Opacitat"
|
||||
BkColor="Color de fons"
|
||||
BkOpacity="Opacitat del fons"
|
||||
Alignment="Alineació"
|
||||
Alignment.Left="Esquerra"
|
||||
Alignment.Center="Centre"
|
||||
Alignment.Right="Dreta"
|
||||
Vertical="Vertical"
|
||||
VerticalAlignment="Alineació vertical"
|
||||
VerticalAlignment.Top="Superior"
|
||||
VerticalAlignment.Bottom="Inferior"
|
||||
Outline="Contorn"
|
||||
Outline.Size="Mida del contorn"
|
||||
Outline.Color="Color del contorn"
|
||||
Outline.Opacity="Opacitat del contorn"
|
||||
ChatlogMode="Mode xat"
|
||||
ChatlogMode.Lines="Límit de la línia de xat"
|
||||
UseCustomExtents="Utilitza extensions de text personalitzat"
|
||||
UseCustomExtents.Wrap="Ajusta"
|
||||
Width="Amplada"
|
||||
Height="Alçada"
|
||||
|
||||
30
plugins/obs-text/data/locale/cs-CZ.ini
Normal file
30
plugins/obs-text/data/locale/cs-CZ.ini
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
TextGDIPlus="Text (GDI+)"
|
||||
Font="Písmo"
|
||||
Text="Text"
|
||||
ReadFromFile="Ze souboru"
|
||||
TextFile="Textový soubor (UTF-8)"
|
||||
Filter.TextFiles="Textové soubory"
|
||||
Filter.AllFiles="Všechny soubory"
|
||||
Color="Barva"
|
||||
Opacity="Krytí"
|
||||
BkColor="Barva pozadí"
|
||||
BkOpacity="Průhlednost pozadí"
|
||||
Alignment="Zarovnání"
|
||||
Alignment.Left="Vlevo"
|
||||
Alignment.Center="Uprostřed"
|
||||
Alignment.Right="Vpravo"
|
||||
Vertical="Vertikálně"
|
||||
VerticalAlignment="Vertikální zarovnání"
|
||||
VerticalAlignment.Top="Nahoře"
|
||||
VerticalAlignment.Bottom="Dole"
|
||||
Outline="Obtáhnout"
|
||||
Outline.Size="Síla obtažení"
|
||||
Outline.Color="Barva obtažení"
|
||||
Outline.Opacity="Krytí obtažení"
|
||||
ChatlogMode="Režim chatu"
|
||||
ChatlogMode.Lines="Limit řádků režimu chatu"
|
||||
UseCustomExtents="Použít vlastní rozsah textu"
|
||||
UseCustomExtents.Wrap="Zalomit"
|
||||
Width="Šířka"
|
||||
Height="Výška"
|
||||
|
||||
30
plugins/obs-text/data/locale/de-DE.ini
Normal file
30
plugins/obs-text/data/locale/de-DE.ini
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
TextGDIPlus="Text (GDI+)"
|
||||
Font="Schriftart"
|
||||
Text="Text"
|
||||
ReadFromFile="Aus Datei lesen"
|
||||
TextFile="Textdatei (UTF-8)"
|
||||
Filter.TextFiles="Textdateien"
|
||||
Filter.AllFiles="Alle Dateien"
|
||||
Color="Farbe"
|
||||
Opacity="Deckkraft"
|
||||
BkColor="Hintergrundfarbe"
|
||||
BkOpacity="Hintergrunddeckkraft"
|
||||
Alignment="Ausrichtung"
|
||||
Alignment.Left="Linksbündig"
|
||||
Alignment.Center="Zentriert"
|
||||
Alignment.Right="Rechtsbündig"
|
||||
Vertical="Vertikal"
|
||||
VerticalAlignment="Vertikal ausrichten"
|
||||
VerticalAlignment.Top="Oben"
|
||||
VerticalAlignment.Bottom="Unten"
|
||||
Outline="Kontur"
|
||||
Outline.Size="Konturgröße"
|
||||
Outline.Color="Konturfarbe"
|
||||
Outline.Opacity="Deckkraft der Kontur"
|
||||
ChatlogMode="Chatlog-Modus"
|
||||
ChatlogMode.Lines="Chatlog Zeilenlimit"
|
||||
UseCustomExtents="Nutze benutzerdefinierten Textbereich"
|
||||
UseCustomExtents.Wrap="Umbruch"
|
||||
Width="Breite"
|
||||
Height="Höhe"
|
||||
|
||||
33
plugins/obs-text/data/locale/en-US.ini
Normal file
33
plugins/obs-text/data/locale/en-US.ini
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
TextGDIPlus="Text (GDI+)"
|
||||
Font="Font"
|
||||
Text="Text"
|
||||
ReadFromFile="Read from file"
|
||||
TextFile="Text File (UTF-8)"
|
||||
Filter.TextFiles="Text Files"
|
||||
Filter.AllFiles="All Files"
|
||||
Color="Color"
|
||||
Opacity="Opacity"
|
||||
Gradient="Gradient"
|
||||
Gradient.Color="Gradient Color"
|
||||
Gradient.Opacity="Gradient Opacity"
|
||||
Gradient.Direction="Gradient Direction"
|
||||
BkColor="Background Color"
|
||||
BkOpacity="Background Opacity"
|
||||
Alignment="Alignment"
|
||||
Alignment.Left="Left"
|
||||
Alignment.Center="Center"
|
||||
Alignment.Right="Right"
|
||||
Vertical="Vertical"
|
||||
VerticalAlignment="Vertical Alignment"
|
||||
VerticalAlignment.Top="Top"
|
||||
VerticalAlignment.Bottom="Bottom"
|
||||
Outline="Outline"
|
||||
Outline.Size="Outline Size"
|
||||
Outline.Color="Outline Color"
|
||||
Outline.Opacity="Outline Opacity"
|
||||
ChatlogMode="Chatlog Mode"
|
||||
ChatlogMode.Lines="Chatlog Line Limit"
|
||||
UseCustomExtents="Use Custom Text Extents"
|
||||
UseCustomExtents.Wrap="Wrap"
|
||||
Width="Width"
|
||||
Height="Height"
|
||||
30
plugins/obs-text/data/locale/es-ES.ini
Normal file
30
plugins/obs-text/data/locale/es-ES.ini
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
TextGDIPlus="Texto (GDI+)"
|
||||
Font="Fuente"
|
||||
Text="Texto"
|
||||
ReadFromFile="Leer desde archivo"
|
||||
TextFile="Archivo de texto (UTF-8)"
|
||||
Filter.TextFiles="Archivos de texto"
|
||||
Filter.AllFiles="Todos los archivos"
|
||||
Color="Color"
|
||||
Opacity="Opacidad"
|
||||
BkColor="Color del fondo"
|
||||
BkOpacity="Opacidad del fondo"
|
||||
Alignment="Alineamiento"
|
||||
Alignment.Left="Izquierda"
|
||||
Alignment.Center="Centrado"
|
||||
Alignment.Right="Derecha"
|
||||
Vertical="Vertical"
|
||||
VerticalAlignment="Alineación vertical"
|
||||
VerticalAlignment.Top="Arriba"
|
||||
VerticalAlignment.Bottom="Abajo"
|
||||
Outline="Contorno"
|
||||
Outline.Size="Tamaño del borde"
|
||||
Outline.Color="Color del borde"
|
||||
Outline.Opacity="Opacidad del borde"
|
||||
ChatlogMode="Modo chat"
|
||||
ChatlogMode.Lines="Límite de la línea de chat"
|
||||
UseCustomExtents="Usar extensiones de texto personalizado"
|
||||
UseCustomExtents.Wrap="Ajustar"
|
||||
Width="Ancho"
|
||||
Height="Alto"
|
||||
|
||||
30
plugins/obs-text/data/locale/eu-ES.ini
Normal file
30
plugins/obs-text/data/locale/eu-ES.ini
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
TextGDIPlus="Testua (GDI+)"
|
||||
Font="Letra-tipoa"
|
||||
Text="Testua"
|
||||
ReadFromFile="Irakurri fitxategitik"
|
||||
TextFile="Testu fitxategia (UTF-8)"
|
||||
Filter.TextFiles="Testu fitxategiak"
|
||||
Filter.AllFiles="Fitxategi guztiak"
|
||||
Color="Kolorea"
|
||||
Opacity="Opakutasuna"
|
||||
BkColor="Atzeko planoaren kolorea"
|
||||
BkOpacity="Atzeko planoaren opakutasuna"
|
||||
Alignment="Lerrokatzea"
|
||||
Alignment.Left="Ezkerrean"
|
||||
Alignment.Center="Erdian"
|
||||
Alignment.Right="Eskuinean"
|
||||
Vertical="Bertikala"
|
||||
VerticalAlignment="Lerrokatze bertikala"
|
||||
VerticalAlignment.Top="Goian"
|
||||
VerticalAlignment.Bottom="Behean"
|
||||
Outline="Ertza"
|
||||
Outline.Size="Ertzaren zabalera"
|
||||
Outline.Color="Ertzaren kolorea"
|
||||
Outline.Opacity="Ertzaren opakutasuna"
|
||||
ChatlogMode="Berriketa modua"
|
||||
ChatlogMode.Lines="Berriketa lerroaren limitea"
|
||||
UseCustomExtents="Erabili testu hedapen pertsonalak"
|
||||
UseCustomExtents.Wrap="Egokitu"
|
||||
Width="Zabalera"
|
||||
Height="Altuera"
|
||||
|
||||
30
plugins/obs-text/data/locale/fi-FI.ini
Normal file
30
plugins/obs-text/data/locale/fi-FI.ini
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
TextGDIPlus="Teksti (GDI+)"
|
||||
Font="Fontti"
|
||||
Text="Teksti"
|
||||
ReadFromFile="Lue tiedostosta"
|
||||
TextFile="Tekstitiedosto (UTF-8)"
|
||||
Filter.TextFiles="Tekstitiedostot"
|
||||
Filter.AllFiles="Kaikki tiedostot"
|
||||
Color="Väri"
|
||||
Opacity="Läpinäkyvyys"
|
||||
BkColor="Taustaväri"
|
||||
BkOpacity="Taustan läpinäkyvyys"
|
||||
Alignment="Sijoittelu"
|
||||
Alignment.Left="Vasen"
|
||||
Alignment.Center="Keskitetty"
|
||||
Alignment.Right="Oikea"
|
||||
Vertical="Pystysuunnassa"
|
||||
VerticalAlignment="Pystysijoittelu"
|
||||
VerticalAlignment.Top="Ylös"
|
||||
VerticalAlignment.Bottom="Alas"
|
||||
Outline="Reunaviiva"
|
||||
Outline.Size="Reunaviivan koko"
|
||||
Outline.Color="Reunaviivan väri"
|
||||
Outline.Opacity="Reunaviivan läpinäkyvyys"
|
||||
ChatlogMode="Chatlog-tila"
|
||||
ChatlogMode.Lines="Chatlog riviraja"
|
||||
UseCustomExtents="Käytä valinnaisia fonttilaajennuksia"
|
||||
UseCustomExtents.Wrap="Sido"
|
||||
Width="Leveys"
|
||||
Height="Korkeus"
|
||||
|
||||
30
plugins/obs-text/data/locale/fr-FR.ini
Normal file
30
plugins/obs-text/data/locale/fr-FR.ini
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
TextGDIPlus="Texte (GDI+)"
|
||||
Font="Police"
|
||||
Text="Texte"
|
||||
ReadFromFile="Lire depuis un fichier"
|
||||
TextFile="Fichier texte (UTF-8)"
|
||||
Filter.TextFiles="Fichiers texte"
|
||||
Filter.AllFiles="Tous les fichiers"
|
||||
Color="Couleur"
|
||||
Opacity="Opacité"
|
||||
BkColor="Couleur de l'arrière-plan"
|
||||
BkOpacity="Transparence de l'arrière-plan"
|
||||
Alignment="Alignement"
|
||||
Alignment.Left="À gauche"
|
||||
Alignment.Center="Centré"
|
||||
Alignment.Right="À droite"
|
||||
Vertical="Vertical"
|
||||
VerticalAlignment="Alignement vertical"
|
||||
VerticalAlignment.Top="En haut"
|
||||
VerticalAlignment.Bottom="En bas"
|
||||
Outline="Contour"
|
||||
Outline.Size="Épaisseur du contour"
|
||||
Outline.Color="Couleur du contour"
|
||||
Outline.Opacity="Opacité du contour"
|
||||
ChatlogMode="Mode discussion"
|
||||
ChatlogMode.Lines="Lignes de discussion"
|
||||
UseCustomExtents="Utiliser une taille personnalisée"
|
||||
UseCustomExtents.Wrap="Retour à la ligne automatique"
|
||||
Width="Largeur"
|
||||
Height="Hauteur"
|
||||
|
||||
30
plugins/obs-text/data/locale/hu-HU.ini
Normal file
30
plugins/obs-text/data/locale/hu-HU.ini
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
TextGDIPlus="Szöveg (GDI+)"
|
||||
Font="Betűtípus"
|
||||
Text="Szöveg"
|
||||
ReadFromFile="Fájlból olvasás"
|
||||
TextFile="Szövegfájl (UTF-8)"
|
||||
Filter.TextFiles="Szöveges fájlok"
|
||||
Filter.AllFiles="Minden fájl"
|
||||
Color="Szín"
|
||||
Opacity="Áttetszőség"
|
||||
BkColor="Háttérszín"
|
||||
BkOpacity="Háttér áttetszőség"
|
||||
Alignment="Pozíció"
|
||||
Alignment.Left="Balra"
|
||||
Alignment.Center="Középre"
|
||||
Alignment.Right="Jobbra"
|
||||
Vertical="Függőleges"
|
||||
VerticalAlignment="Függőleges igazítás"
|
||||
VerticalAlignment.Top="Fent"
|
||||
VerticalAlignment.Bottom="Lent"
|
||||
Outline="Körvonal"
|
||||
Outline.Size="Körvonal mérete"
|
||||
Outline.Color="Körvonal színe"
|
||||
Outline.Opacity="Körvonal áttetszőség"
|
||||
ChatlogMode="Csevegőnapló mód"
|
||||
ChatlogMode.Lines="Csevegőnapló sorlimit"
|
||||
UseCustomExtents="Egyedi szövegdoboz használata"
|
||||
UseCustomExtents.Wrap="Sortörés"
|
||||
Width="Szélesség"
|
||||
Height="Magasság"
|
||||
|
||||
30
plugins/obs-text/data/locale/ja-JP.ini
Normal file
30
plugins/obs-text/data/locale/ja-JP.ini
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
TextGDIPlus="テキスト (GDI+)"
|
||||
Font="フォント"
|
||||
Text="テキスト"
|
||||
ReadFromFile="ファイルからの読み取り"
|
||||
TextFile="テキストファイル (UTF-8)"
|
||||
Filter.TextFiles="テキストファイル"
|
||||
Filter.AllFiles="すべてのファイル"
|
||||
Color="色"
|
||||
Opacity="不透明度"
|
||||
BkColor="背景色"
|
||||
BkOpacity="背景の不透明度"
|
||||
Alignment="位置揃え"
|
||||
Alignment.Left="左"
|
||||
Alignment.Center="中央"
|
||||
Alignment.Right="右"
|
||||
Vertical="垂直方向"
|
||||
VerticalAlignment="垂直位置揃え"
|
||||
VerticalAlignment.Top="上"
|
||||
VerticalAlignment.Bottom="下"
|
||||
Outline="輪郭"
|
||||
Outline.Size="輪郭のサイズ"
|
||||
Outline.Color="輪郭の色"
|
||||
Outline.Opacity="輪郭の不透明度"
|
||||
ChatlogMode="チャットログモード"
|
||||
ChatlogMode.Lines="チャットログ行の制限"
|
||||
UseCustomExtents="テキスト領域の範囲を指定する"
|
||||
UseCustomExtents.Wrap="折り返す"
|
||||
Width="幅"
|
||||
Height="高さ"
|
||||
|
||||
30
plugins/obs-text/data/locale/ko-KR.ini
Normal file
30
plugins/obs-text/data/locale/ko-KR.ini
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
TextGDIPlus="텍스트 (GDI+)"
|
||||
Font="글꼴"
|
||||
Text="텍스트"
|
||||
ReadFromFile="파일에서 불러들이기"
|
||||
TextFile="텍스트 파일 (UTF-8)"
|
||||
Filter.TextFiles="텍스트 파일"
|
||||
Filter.AllFiles="모든 파일"
|
||||
Color="색"
|
||||
Opacity="투명도"
|
||||
BkColor="배경 색상"
|
||||
BkOpacity="배경 불투명도"
|
||||
Alignment="정렬"
|
||||
Alignment.Left="왼쪽"
|
||||
Alignment.Center="가운데"
|
||||
Alignment.Right="오른쪽"
|
||||
Vertical="수직"
|
||||
VerticalAlignment="수직 정렬"
|
||||
VerticalAlignment.Top="위"
|
||||
VerticalAlignment.Bottom="아래"
|
||||
Outline="외곽선"
|
||||
Outline.Size="외곽선 크기"
|
||||
Outline.Color="외곽선 색"
|
||||
Outline.Opacity="외곽선 투명도"
|
||||
ChatlogMode="채팅기록 모드"
|
||||
ChatlogMode.Lines="채팅기록 줄 제한"
|
||||
UseCustomExtents="사용자 정의 텍스트 설정"
|
||||
UseCustomExtents.Wrap="자동 줄 바꿈"
|
||||
Width="너비"
|
||||
Height="높이"
|
||||
|
||||
28
plugins/obs-text/data/locale/nl-NL.ini
Normal file
28
plugins/obs-text/data/locale/nl-NL.ini
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
TextGDIPlus="Tekst (GDI+)"
|
||||
Font="Lettertype"
|
||||
Text="Tekst"
|
||||
ReadFromFile="Lees uit bestand"
|
||||
TextFile="Tekstbestand (UTF-8)"
|
||||
Filter.TextFiles="Tekstbestanden"
|
||||
Filter.AllFiles="Alle bestanden"
|
||||
Color="Kleur"
|
||||
Opacity="Dekking"
|
||||
Alignment="Uitlijning"
|
||||
Alignment.Left="Links"
|
||||
Alignment.Center="Midden"
|
||||
Alignment.Right="Rechts"
|
||||
Vertical="Verticaal"
|
||||
VerticalAlignment="Verticale uitlijning"
|
||||
VerticalAlignment.Top="Boven"
|
||||
VerticalAlignment.Bottom="Onder"
|
||||
Outline="Contour"
|
||||
Outline.Size="Contourgrootte"
|
||||
Outline.Color="Contourkleur"
|
||||
Outline.Opacity="Contourdekking"
|
||||
ChatlogMode="Chatlogmodus"
|
||||
ChatlogMode.Lines="Chatlog regel-limiet"
|
||||
UseCustomExtents="Aangepaste tekst-extents gebruiken"
|
||||
UseCustomExtents.Wrap="Terugloop"
|
||||
Width="Breedte"
|
||||
Height="Hoogte"
|
||||
|
||||
30
plugins/obs-text/data/locale/pl-PL.ini
Normal file
30
plugins/obs-text/data/locale/pl-PL.ini
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
TextGDIPlus="Tekst (GDI +)"
|
||||
Font="Czcionka"
|
||||
Text="Tekst"
|
||||
ReadFromFile="Czytaj z pliku"
|
||||
TextFile="Plik tekstowy (UTF-8)"
|
||||
Filter.TextFiles="Pliki tekstowe"
|
||||
Filter.AllFiles="Wszystkie pliki"
|
||||
Color="Kolor"
|
||||
Opacity="Przezroczystość"
|
||||
BkColor="Kolor tła"
|
||||
BkOpacity="Przezroczystość tła"
|
||||
Alignment="Wyrównanie"
|
||||
Alignment.Left="Do lewej"
|
||||
Alignment.Center="Wyśrodkuj"
|
||||
Alignment.Right="Do prawej"
|
||||
Vertical="Pionowo"
|
||||
VerticalAlignment="Wyrównanie w pionie"
|
||||
VerticalAlignment.Top="Do góry"
|
||||
VerticalAlignment.Bottom="Do dołu"
|
||||
Outline="Kontur"
|
||||
Outline.Size="Rozmiar konturu"
|
||||
Outline.Color="Kolor konturu"
|
||||
Outline.Opacity="Przezroczystość konturu"
|
||||
ChatlogMode="Tryb podglądu czatu"
|
||||
ChatlogMode.Lines="Limit linii czatu"
|
||||
UseCustomExtents="Użyj niestandardowego zakresu tekstu"
|
||||
UseCustomExtents.Wrap="Zawiń"
|
||||
Width="Szerokość"
|
||||
Height="Wysokość"
|
||||
|
||||
30
plugins/obs-text/data/locale/ru-RU.ini
Normal file
30
plugins/obs-text/data/locale/ru-RU.ini
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
TextGDIPlus="Текст (GDI+)"
|
||||
Font="Шрифт"
|
||||
Text="Текст"
|
||||
ReadFromFile="Чтение из файла"
|
||||
TextFile="Текстовый файл (UTF-8)"
|
||||
Filter.TextFiles="Текстовые файлы"
|
||||
Filter.AllFiles="Все файлы"
|
||||
Color="Цвет"
|
||||
Opacity="Непрозрачность"
|
||||
BkColor="Цвет фона"
|
||||
BkOpacity="Непрозрачность фона"
|
||||
Alignment="Выравнивание"
|
||||
Alignment.Left="По левому краю"
|
||||
Alignment.Center="По центру"
|
||||
Alignment.Right="По правому краю"
|
||||
Vertical="Вертикальный"
|
||||
VerticalAlignment="Вертикальное выравнивание"
|
||||
VerticalAlignment.Top="Сверху"
|
||||
VerticalAlignment.Bottom="Снизу"
|
||||
Outline="Обводка"
|
||||
Outline.Size="Размер обводки"
|
||||
Outline.Color="Цвет обводки"
|
||||
Outline.Opacity="Непрозрачность контура"
|
||||
ChatlogMode="Режим чат-лога"
|
||||
ChatlogMode.Lines="Лимит кол-ва строк чата"
|
||||
UseCustomExtents="Свои размеры текстового поля"
|
||||
UseCustomExtents.Wrap="Перенос строк"
|
||||
Width="Ширина"
|
||||
Height="Высота"
|
||||
|
||||
30
plugins/obs-text/data/locale/sv-SE.ini
Normal file
30
plugins/obs-text/data/locale/sv-SE.ini
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
TextGDIPlus="Text (GDI+)"
|
||||
Font="Typsnitt"
|
||||
Text="Text"
|
||||
ReadFromFile="Läs från fil"
|
||||
TextFile="Textfil (UTF-8)"
|
||||
Filter.TextFiles="Textfiler"
|
||||
Filter.AllFiles="Alla filer"
|
||||
Color="Färg"
|
||||
Opacity="Opacitet"
|
||||
BkColor="Bakgrundsfärg"
|
||||
BkOpacity="Bakgrundsopacitet"
|
||||
Alignment="Justering"
|
||||
Alignment.Left="Vänster"
|
||||
Alignment.Center="Centrerad"
|
||||
Alignment.Right="Höger"
|
||||
Vertical="Vertikal"
|
||||
VerticalAlignment="Vertikal justering"
|
||||
VerticalAlignment.Top="Överkant"
|
||||
VerticalAlignment.Bottom="Nederkant"
|
||||
Outline="Kontur"
|
||||
Outline.Size="Konturstorlek"
|
||||
Outline.Color="Konturfärg"
|
||||
Outline.Opacity="Konturopacitet"
|
||||
ChatlogMode="Chattloggsläge"
|
||||
ChatlogMode.Lines="Radgräns för chattlogg"
|
||||
UseCustomExtents="Använd anpassade textmått"
|
||||
UseCustomExtents.Wrap="Radbryt"
|
||||
Width="Bredd"
|
||||
Height="Höjd"
|
||||
|
||||
30
plugins/obs-text/data/locale/uk-UA.ini
Normal file
30
plugins/obs-text/data/locale/uk-UA.ini
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
TextGDIPlus="Текст (GDI+)"
|
||||
Font="Шрифт"
|
||||
Text="Текст"
|
||||
ReadFromFile="Текст з файлу"
|
||||
TextFile="Текстовий файл (UTF-8)"
|
||||
Filter.TextFiles="Текстові файли"
|
||||
Filter.AllFiles="Всі файли"
|
||||
Color="Колір"
|
||||
Opacity="Непрозорість"
|
||||
BkColor="Колір фону"
|
||||
BkOpacity="Непрозорість фону"
|
||||
Alignment="Вирівнювання"
|
||||
Alignment.Left="Ліворуч"
|
||||
Alignment.Center="Центр"
|
||||
Alignment.Right="Праворуч"
|
||||
Vertical="Вертикально"
|
||||
VerticalAlignment="Вертикальне вирівнювання"
|
||||
VerticalAlignment.Top="Вверху"
|
||||
VerticalAlignment.Bottom="Внизу"
|
||||
Outline="Контур"
|
||||
Outline.Size="Розмір контуру"
|
||||
Outline.Color="Колір контуру"
|
||||
Outline.Opacity="Непрозорість контуру"
|
||||
ChatlogMode="Режим чат-журналу"
|
||||
ChatlogMode.Lines="Кількість рядків чат-журналу"
|
||||
UseCustomExtents="Особливі властивості текстового блоку"
|
||||
UseCustomExtents.Wrap="Перенос слів"
|
||||
Width="Ширина"
|
||||
Height="Висота"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue