Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
尘离序散
obs-studio
提交
0157d025
O
obs-studio
项目概览
尘离序散
/
obs-studio
与 Fork 源项目一致
从无法访问的项目Fork
通知
30
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
obs-studio
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0157d025
编写于
5月 05, 2016
作者:
J
jp9000
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
obs-ffmpeg: Add lossless mode to NVENC encoder
上级
0288ea66
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
27 addition
and
3 deletion
+27
-3
plugins/obs-ffmpeg/data/locale/en-US.ini
plugins/obs-ffmpeg/data/locale/en-US.ini
+2
-0
plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c
plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c
+25
-3
未找到文件。
plugins/obs-ffmpeg/data/locale/en-US.ini
浏览文件 @
0157d025
...
...
@@ -13,6 +13,8 @@ NVENC.Preset.bd="Bluray"
NVENC.Preset.ll
=
"Low-Latency"
NVENC.Preset.llhq
=
"Low-Latency High Quality"
NVENC.Preset.llhp
=
"Low-Latency High Performance"
NVENC.Preset.lossless
=
"Lossless"
NVENC.Preset.losslesshp
=
"Lossless High Performance"
NVENC.Level
=
"Level"
FFmpegSource
=
"Media Source"
...
...
plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c
浏览文件 @
0157d025
...
...
@@ -16,6 +16,7 @@
******************************************************************************/
#include <util/darray.h>
#include <util/dstr.h>
#include <util/base.h>
#include <media-io/video-io.h>
#include <obs-module.h>
...
...
@@ -140,13 +141,20 @@ static bool nvenc_update(void *data, obs_data_t *settings)
nvenc_video_info
(
enc
,
&
info
);
av_opt_set
(
enc
->
context
->
priv_data
,
"preset"
,
preset
,
0
);
av_opt_set
(
enc
->
context
->
priv_data
,
"profile"
,
profile
,
0
);
av_opt_set
(
enc
->
context
->
priv_data
,
"level"
,
level
,
0
);
av_opt_set_int
(
enc
->
context
->
priv_data
,
"cbr"
,
cbr
,
0
);
av_opt_set_int
(
enc
->
context
->
priv_data
,
"2pass"
,
twopass
,
0
);
av_opt_set_int
(
enc
->
context
->
priv_data
,
"gpu"
,
gpu
,
0
);
enc
->
context
->
bit_rate
=
bitrate
*
1000
;
if
(
astrcmp_n
(
preset
,
"lossless"
,
8
)
==
0
)
{
enc
->
context
->
bit_rate
=
0
;
bitrate
=
0
;
}
else
{
enc
->
context
->
bit_rate
=
bitrate
*
1000
;
av_opt_set
(
enc
->
context
->
priv_data
,
"profile"
,
profile
,
0
);
av_opt_set_int
(
enc
->
context
->
priv_data
,
"cbr"
,
cbr
,
0
);
}
enc
->
context
->
width
=
obs_encoder_get_width
(
enc
->
encoder
);
enc
->
context
->
height
=
obs_encoder_get_height
(
enc
->
encoder
);
enc
->
context
->
time_base
=
(
AVRational
){
voi
->
fps_den
,
voi
->
fps_num
};
...
...
@@ -321,6 +329,16 @@ static void nvenc_defaults(obs_data_t *settings)
obs_data_set_default_int
(
settings
,
"gpu"
,
0
);
}
static
bool
preset_modified
(
obs_properties_t
*
props
,
obs_property_t
*
p
,
obs_data_t
*
settings
)
{
const
char
*
preset
=
obs_data_get_string
(
settings
,
"preset"
);
bool
lossless
=
preset
&&
astrcmp_n
(
preset
,
"lossless"
,
8
)
==
0
;
p
=
obs_properties_get
(
props
,
"bitrate"
);
obs_property_set_visible
(
p
,
!
lossless
);
return
true
;
}
static
obs_properties_t
*
nvenc_properties
(
void
*
unused
)
{
UNUSED_PARAMETER
(
unused
);
...
...
@@ -347,8 +365,12 @@ static obs_properties_t *nvenc_properties(void *unused)
add_preset
(
"ll"
);
add_preset
(
"llhq"
);
add_preset
(
"llhp"
);
add_preset
(
"lossless"
);
add_preset
(
"losslesshp"
);
#undef add_preset
obs_property_set_modified_callback
(
p
,
preset_modified
);
p
=
obs_properties_add_list
(
props
,
"profile"
,
obs_module_text
(
"Profile"
),
OBS_COMBO_TYPE_LIST
,
OBS_COMBO_FORMAT_STRING
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录