Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

501
Views
El comando xstack de FFMPEG da como resultado un sonido no sincronizado, ¿es posible mezclar el audio en una sola codificación?

Escribí un script de python que genera un comando de filtro complejo xstack. Las entradas de video son una mezcla de varios formatos descritos aquí:

Tengo 2 comandos generados, uno para el filtro xstack y otro para la mezcla de audio.

Aquí está el comando de pila: (¡lo siento, el texto no se ajusta!)

 'c:/ydl/ffmpeg.exe', '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-filter_complex', '[0]scale=480:270:force_original_aspect_ratio=decrease,pad=480:270:(ow-iw)/2:(oh-ih)/2, setsar=1[rsclbf0];[rsclbf0]fps=24[rscl0];[1]scale=480:270:force_original_aspect_ratio=decrease,pad=480:270:(ow-iw)/2:(oh-ih)/2, setsar=1[rsclbf1];[rsclbf1]fps=24[rscl1];[2]scale=480:270:force_original_aspect_ratio=decrease,pad=480:270:(ow-iw)/2:(oh-ih)/2, setsar=1[rsclbf2];[rsclbf2]fps=24[rscl2];[3]scale=480:270:force_original_aspect_ratio=decrease,pad=480:270:(ow-iw)/2:(oh-ih)/2, setsar=1[rsclbf3];[rsclbf3]fps=24[rscl3];[4]scale=480:270:force_original_aspect_ratio=decrease,pad=480:270:(ow-iw)/2:(oh-ih)/2, setsar=1[rsclbf4];[rsclbf4]fps=24[rscl4];[5]scale=480:270:force_original_aspect_ratio=decrease,pad=480:270:(ow-iw)/2:(oh-ih)/2, setsar=1[rsclbf5];[rsclbf5]fps=24[rscl5];[6]scale=480:270:force_original_aspect_ratio=decrease,pad=480:270:(ow-iw)/2:(oh-ih)/2, setsar=1[rsclbf6];[rsclbf6]fps=24[rscl6];[7]scale=480:270:force_original_aspect_ratio=decrease,pad=480:270:(ow-iw)/2:(oh-ih)/2, setsar=1[rsclbf7];[rsclbf7]fps=24[rscl7];[8]scale=480:270:force_original_aspect_ratio=decrease,pad=480:270:(ow-iw)/2:(oh-ih)/2, setsar=1[rsclbf8];[rsclbf8]fps=24[rscl8];[9]scale=480:270:force_original_aspect_ratio=decrease,pad=480:270:(ow-iw)/2:(oh-ih)/2, setsar=1[rsclbf9];[rsclbf9]fps=24[rscl9];[10]scale=480:270:force_original_aspect_ratio=decrease,pad=480:270:(ow-iw)/2:(oh-ih)/2, setsar=1[rsclbf10];[rsclbf10]fps=24[rscl10];[11]scale=480:270:force_original_aspect_ratio=decrease,pad=480:270:(ow-iw)/2:(oh-ih)/2, setsar=1[rsclbf11];[rsclbf11]fps=24[rscl11];[12]scale=480:270:force_original_aspect_ratio=decrease,pad=480:270:(ow-iw)/2:(oh-ih)/2, setsar=1[rsclbf12];[rsclbf12]fps=24[rscl12];[13]scale=480:270:force_original_aspect_ratio=decrease,pad=480:270:(ow-iw)/2:(oh-ih)/2, setsar=1[rsclbf13];[rsclbf13]fps=24[rscl13];[14]scale=480:270:force_original_aspect_ratio=decrease,pad=480:270:(ow-iw)/2:(oh-ih)/2, setsar=1[rsclbf14];[rsclbf14]fps=24[rscl14];[rscl0][rscl1][rscl2][rscl3][rscl4]concat=n=5[cct0];[rscl5][rscl6][rscl7]concat=n=3[cct1];[rscl8][rscl9][rscl10]concat=n=3[cct2];[rscl11][rscl12][rscl13][rscl14]concat=n=4[cct3];[cct0][cct1][cct2][cct3]xstack=inputs=4:layout=0_0|w0_0|0_h0|w0_h0', 'output.mp4',

Aquí está el comando mix_audio:

 'c:/ydl/ffmpeg.exe', '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-i', 'inputX.mp4' '-filter_complex', '[0:a][1:a][2:a][3:a][4:a]concat=n=5:v=0:a=1[cct_a0];[5:a][6:a][7:a]concat=n=3:v=0:a=1[cct_a1];[8:a][9:a][10:a]concat=n=3:v=0:a=1[cct_a2];[11:a][12:a][13:a][14:a]concat=n=4:v=0:a=1[cct_a3];[cct_a0][cct_a1][cct_a2][cct_a3]amix=inputs=4[all_aud]', '-map', '15:v', '-map', '[all_aud]', '-c:v', 'copy', 'output.mp4',

Por supuesto, esos son comandos de muestra, en realidad uso muchos más videos como entrada, esta muestra es más corta por el bien de la legibilidad.

Aquí están los videos que uso, con datos relevantes de ffprobe, en alguna tabla HTML:

datos de la sonda

Estoy recibiendo esta advertencia:

 [swscaler @ 0000020bac5a19c0] Warning: data is not aligned! This can lead to a speed loss

Creo que esto no está relacionado con la desincronización de audio, estos datos no alineados se trata de resoluciones x264 que son múltiplos de 16, pero mi filtro ya tiene esto en cuenta.

Hay una desincronización de audio perceptible, que es el principal problema que tengo. FFMPEG no parece tener otros errores. ¿Es porque uso 2 comandos para mezclar el audio después? ¿Cómo podría proceder al escenario xstack y la mezcla de audio en un solo escenario?

Estoy un poco confundido sobre cómo FFMPEG maneja diversas velocidades de cuadro. Me dijeron que recodificara todas las entradas de video antes de realizar la etapa xstack, pero crearía una sobrecarga de disco, por lo que preferiría hacerlo en un solo trabajo de ffmpeg si es posible.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Estoy un poco confundido sobre cómo FFMPEG maneja diversas velocidades de cuadro

No lo hace, lo que causaría una desalineación en su caso. La gran mayoría de los filtros (cualquiera que se ocupe de varias fuentes y haga uso de fotogramas, esencialmente), incluido el filtro Concatenar , requiere que las fuentes tengan la misma velocidad de fotogramas.

Para que funcione el filtro concat, las entradas deben tener las mismas dimensiones de cuadro (p. ej., 1920⨉1080 píxeles) y deben tener la misma velocidad de cuadro.

(énfasis añadido)

La documentación también agrega:

Por lo tanto, es posible que al menos deba agregar un filtro scale o scale2ref antes de concatenar videos. Un puñado de otros atributos también tienen que coincidir, como la relación de aspecto de la transmisión. Consulte la documentación del filtro para obtener más información.

Primero debe convertir sus fuentes a la misma velocidad de fotogramas.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!