shiveshnavin commited on
Commit
dba0530
·
1 Parent(s): 92f01c7
server-plugins/flatten-paths.js CHANGED
@@ -7,6 +7,10 @@ export class FlattenPathsPlugin extends Plugin {
7
  }
8
  async applyPrerender(originalManuscript, jobId) {
9
  let transcript = originalManuscript.transcript
 
 
 
 
10
  for (let item of transcript) {
11
  if (item.mediaAbsPaths && item.mediaAbsPaths.length > 0) {
12
  item.mediaAbsPaths = item.mediaAbsPaths.map((mediaObj) => {
 
7
  }
8
  async applyPrerender(originalManuscript, jobId) {
9
  let transcript = originalManuscript.transcript
10
+
11
+ if (originalManuscript.bgMusic) {
12
+ originalManuscript.bgMusic = path.join('public', path.basename(originalManuscript.bgMusic));
13
+ }
14
  for (let item of transcript) {
15
  if (item.mediaAbsPaths && item.mediaAbsPaths.length > 0) {
16
  item.mediaAbsPaths = item.mediaAbsPaths.map((mediaObj) => {
utils/CaptionRender.js CHANGED
@@ -103,12 +103,22 @@ export class CaptionRenderer {
103
  filterComplex += `;[vout0]copy[finalv];[aout0]copy[finala]`;
104
  }
105
 
106
- // Execute single ffmpeg command
 
 
 
 
 
 
 
 
 
 
107
  await this.runFFmpeg([
108
  ...inputs,
109
  '-filter_complex', filterComplex,
110
  '-map', '[finalv]',
111
- '-map', '[finala]',
112
  '-c:v', 'libx264',
113
  '-c:a', 'aac',
114
  '-y',
 
103
  filterComplex += `;[vout0]copy[finalv];[aout0]copy[finala]`;
104
  }
105
 
106
+ // Add background music if present
107
+ const { bgMusic, bgMusicVolume = 0.25, bgMusicDuration = 3 * 60 } = originalManuscript;
108
+ let bgMusicInputIndex = null;
109
+ if (bgMusic) {
110
+ inputs.push('-i', bgMusic);
111
+ bgMusicInputIndex = inputIndex;
112
+ inputIndex++;
113
+ // Mix bgMusic with finala
114
+ filterComplex += `;[${bgMusicInputIndex}:a]volume=${bgMusicVolume}[bgmvol];[finala][bgmvol]amix=inputs=2:duration=first:dropout_transition=2[mixeda]`;
115
+ }
116
+
117
  await this.runFFmpeg([
118
  ...inputs,
119
  '-filter_complex', filterComplex,
120
  '-map', '[finalv]',
121
+ '-map', bgMusic ? '[mixeda]' : '[finala]',
122
  '-c:v', 'libx264',
123
  '-c:a', 'aac',
124
  '-y',