NarratoAI/webui/components/video_settings.py
linyq 11a4cf0900 (subfeattitle): 优化字幕功能并增加位置设置
- 调整音频设置的滑块范围和默认值
- 修复生成脚本短片功能的导入问题
- 优化字幕设置界面,增加字幕位置选项- 改进字幕渲染逻辑,支持多种位置配置
- 调整视频设置中的原始音量滑块范围和默认值
2024-12-11 11:51:02 +08:00

61 lines
1.8 KiB
Python

import streamlit as st
from app.models.schema import VideoClipParams, VideoAspect
def render_video_panel(tr):
"""渲染视频配置面板"""
with st.container(border=True):
st.write(tr("Video Settings"))
params = VideoClipParams()
render_video_config(tr, params)
def render_video_config(tr, params):
"""渲染视频配置"""
# 视频比例
video_aspect_ratios = [
(tr("Portrait"), VideoAspect.portrait.value),
(tr("Landscape"), VideoAspect.landscape.value),
]
selected_index = st.selectbox(
tr("Video Ratio"),
options=range(len(video_aspect_ratios)),
format_func=lambda x: video_aspect_ratios[x][0],
)
params.video_aspect = VideoAspect(video_aspect_ratios[selected_index][1])
st.session_state['video_aspect'] = params.video_aspect.value
# 视频画质
video_qualities = [
("4K (2160p)", "2160p"),
("2K (1440p)", "1440p"),
("Full HD (1080p)", "1080p"),
("HD (720p)", "720p"),
("SD (480p)", "480p"),
]
quality_index = st.selectbox(
tr("Video Quality"),
options=range(len(video_qualities)),
format_func=lambda x: video_qualities[x][0],
index=2 # 默认选择 1080p
)
st.session_state['video_quality'] = video_qualities[quality_index][1]
# 原声音量
params.original_volume = st.slider(
tr("Original Volume"),
min_value=0.0,
max_value=1.0,
value=0.7,
step=0.01,
help=tr("Adjust the volume of the original audio")
)
def get_video_params():
"""获取视频参数"""
return {
'video_aspect': st.session_state.get('video_aspect', VideoAspect.portrait.value),
'video_quality': st.session_state.get('video_quality', '1080p')
}