@@ -53,6 +53,7 @@ function ScenarioTranscriptImpl({activeKey, defaultEnabled, defaultConf, default
53
53
const [ baseURL , setBaseURL ] = React . useState ( defaultConf . baseURL || ( language === 'zh' ? '' : 'https://api.openai.com/v1' ) ) ;
54
54
const [ targetLanguage , setTargetLanguage ] = React . useState ( defaultConf . lang || language ) ;
55
55
const [ forceStyle , setForceStyle ] = React . useState ( defaultConf . forceStyle || 'Alignment=2,MarginV=20' ) ;
56
+ const [ videoCodecParams , setVideoCodecParams ] = React . useState ( defaultConf . videoCodecParams || '-c:v libx264 -profile:v main -preset:v medium -tune zerolatency -bf 0' ) ;
56
57
57
58
const [ liveQueue , setLiveQueue ] = React . useState ( ) ;
58
59
const [ asrQueue , setAsrQueue ] = React . useState ( ) ;
@@ -89,15 +90,15 @@ function ScenarioTranscriptImpl({activeKey, defaultEnabled, defaultConf, default
89
90
if ( ! baseURL ) return alert ( `Invalid base url ${ baseURL } ` ) ;
90
91
91
92
axios . post ( '/terraform/v1/ai/transcript/apply' , {
92
- uuid, all : ! ! enabled , secretKey, organization, baseURL, lang : targetLanguage , forceStyle,
93
+ uuid, all : ! ! enabled , secretKey, organization, baseURL, lang : targetLanguage , forceStyle, videoCodecParams ,
93
94
} , {
94
95
headers : Token . loadBearerHeader ( ) ,
95
96
} ) . then ( res => {
96
97
alert ( t ( 'helper.setOk' ) ) ;
97
98
console . log ( `Transcript: Apply config ok, uuid=${ uuid } .` ) ;
98
99
success && success ( ) ;
99
100
} ) . catch ( handleError ) ;
100
- } , [ t , handleError , secretKey , baseURL , targetLanguage , forceStyle , uuid , organization ] ) ;
101
+ } , [ t , handleError , secretKey , baseURL , targetLanguage , forceStyle , videoCodecParams , uuid , organization ] ) ;
101
102
102
103
const resetTask = React . useCallback ( ( ) => {
103
104
setOperating ( true ) ;
@@ -307,6 +308,9 @@ function ScenarioTranscriptImpl({activeKey, defaultEnabled, defaultConf, default
307
308
< Nav . Item >
308
309
< Nav . Link href = "#overlay" onClick = { ( e ) => changeConfigItem ( e , 'overlay' ) } > { t ( 'transcript.overlay2' ) } </ Nav . Link >
309
310
</ Nav . Item >
311
+ < Nav . Item >
312
+ < Nav . Link href = "#transcode" onClick = { ( e ) => changeConfigItem ( e , 'transcode' ) } > { t ( 'transcript.transcode' ) } </ Nav . Link >
313
+ </ Nav . Item >
310
314
</ Nav >
311
315
</ Card . Header >
312
316
{ configItem === 'provider' && < Card . Body >
@@ -334,6 +338,15 @@ function ScenarioTranscriptImpl({activeKey, defaultEnabled, defaultConf, default
334
338
< Form . Control as = "input" defaultValue = { forceStyle } onChange = { ( e ) => setForceStyle ( e . target . value ) } />
335
339
</ Form . Group >
336
340
</ Card . Body > }
341
+ { configItem === 'transcode' && < Card . Body >
342
+ < Form . Group className = "mb-3" >
343
+ < Form . Label > { t ( 'transcript.trans0' ) } </ Form . Label >
344
+ < Form . Text > * { t ( 'transcript.trans1' ) } .
345
+ { t ( 'helper.see' ) } < a href = { t ( 'transcript.trans2' ) } target = '_blank' rel = 'noreferrer' > FFmpeg: video codec</ a > .
346
+ </ Form . Text >
347
+ < Form . Control as = "input" defaultValue = { videoCodecParams } onChange = { ( e ) => setVideoCodecParams ( e . target . value ) } />
348
+ </ Form . Group >
349
+ </ Card . Body > }
337
350
</ Card >
338
351
< p > </ p >
339
352
< Button ariant = "primary" type = "submit" onClick = { ( e ) => {
0 commit comments