Spaces:
Running
Running
File size: 1,954 Bytes
3b13b0e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
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")
)
st.session_state['original_volume'] = params.original_volume
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'),
'original_volume': st.session_state.get('original_volume', 0.7)
}
|