¿Un software para juntar frames y audio de nuevo? virtualdub

Solía usar un programa que me permitía juntar los frames de un vídeo al que había separado los frames, creo que era un programa gratuito que me permitía juntar esos frames y el audio, su nombre creo que era algo de dub o así, tenía pinta de programa antiguo por su aspecto sencillo pero funcionaba perfectamente.

Para separarlos uso ffmpeg y me va genial, también puedes juntarlos con ese software, pero claro, quiero juntarlos con el audio y así ahorrarme doble procesamiento y ahorrarme ocupar espacio sobrante ya que el vídeo ocupa mucho, y cuando digo mucho es mucho, por lo que quiero juntar los frames con el audio de una tirada y ese software me hacía genial la faena.

@TRASTARO igual sabes algo

Vale, lo he encontrado, creo que es el Virtualdub https://www.virtualdub.org/

Imagen
1.Vaya al menú Vídeo. Encontrará Velocidad de fotogramas y Compresión allí. Abre Compresión.
2.Obtenga el codificador x264. Si no lo tienes, descárgalo aquí . Haga clic en Configurar.
3.Aquí puede determinar la calidad. Encontré la configuración que se muestra como la más adecuada.
4.Vaya al menú Velocidad de fotogramas. Establezca la velocidad de fotogramas en los dos campos a la velocidad de fotogramas del vídeo de origen. Para DS9 fue 29,970628 (una velocidad de fotogramas común). Haga clic en Aceptar
5.Vaya al menú Audio. Necesitamos asegurarnos de que Interleaving esté configurado correctamente. Haga clic en Aceptar.
6.En el menú Intercalado, configure todo como se muestra arriba. Haga clic en Aceptar.
7.Asegúrese de que Sincronizar con audio esté activado en el menú Opciones.

Ahora que todo está configurado, puede ir a Archivo > Guardar como AVI. Guarde el archivo y déjelo renderizar. Puede desmarcar Mostrar video de entrada, Mostrar video de entrada y establecer la prioridad del subproceso de procesamiento en una prioridad más alta para que la exportación de video sea más rápida (a costa de tener menos recursos disponibles para otros programas).
1.Go to the Video menu. You will find Frame Rate and Compression there. Open up Compression.
2.Get the x264 encoder. If you don't have it, download it here. Click on Configure.
3.Here you can determine the quality. I found the settings as displayed the most appropriate.
4.Go to the Frame Rate menu. Set the frame rate in the two fields to the frame rate of the source video. For DS9 this was 29.970628 (a common frame rate). Click OK
5.Go to the Audio menu. We need to make sure Interleaving is set up correctly. Click OK.
6.In the Interleaving menu, set everything as displayed above. Click OK.
7.Make sure Sync to Audio is on in the Options menu.

Now everything is set up, you can go to File > Save as AVI. Save the file and let it render. You can uncheck Show Input Video, Show Input Video and set the processing thread priority to a higher priority to make the video export faster (at the cost of having fewer resources available for other programs).









Aunque también he visto esto con FFMPEG

https://forum.videohelp.com/threads/335 ... VirtualDub

ffmpeg -i still.png -i audio.mp3 -acodec copy -vcodec libx264 output.mp4

still sería el nombre de la imagen, sin incluir los números y audio.mp3 el audio que quieres juntar

¿Qué cambios me recomendarías? @TRASTARO?

https://shotstack.io/learn/use-ffmpeg-t ... -to-video/

FFmpeg format specifiers
If you have a series of images that are sequentially named, e.g. happy1.jpg, happy2.jpg, happy3.jpg, happy4.jpg, etc. you can use ffmpeg format specifiers to indicate the images that FFmpeg should use:

$ ffmpeg -framerate 1 -i happy%d.jpg -c:v libx264 -r 30 output.mp4
The above command takes an input of images, -i happy%d.jpg. This will search for the image with the lowest digit and sets that as the starting image. It will then increment that number by one and if the image exists, it will be added to the sequence. You can specify the start image yourself with -start_number n, If we added -start_number 3 to the above command, the starting image would be happy3.jpg.

Options are always written before the file they refer to, so in our example, -framerate 1 -i are options used for the input image and -c:v libx264 -r 30 are options for the output file.

We use -framerate 1 to define how fast the pictures are read in, in this case, 1 picture per second. Omitting the framerate will default to a framerate of 25.

-r 30 is the framerate of the output video. Again, if we didn't define it, it would default to 25.

The -c:v libx264 specifies the codec to use to encode the video. x264 is a library used for encoding video streams into the H.264/MPEG-4 AVC compression format.

You can see the resulting video below:




https://ffmpegfromzerotohero.com/blog/c ... th-ffmpeg/


You may want to add an audio track onto a single picture so to create an h264 file, using the audio lenght as the total lenght.

You could instruct FFMPEG to do the following:

ffmpeg -i YOUR-AUDIO.aac -i YOUR-PICTURE.jpg -map 0:a -map 1:v output.mp4
But with the above instructions, you may encounter the following error:

“[libx264 …] width (or height) non divisible by 2 (w x h). Error initializing output stream 0:1 — Error while opening encoder for output stream #0:1 – maybe incorrect parameters such as bit_rate, rate, width or height”

This is beacause the h264 encoder needs even dimensions.

Thus, in order to produce a standard h264 file with audio and 1 picture, you may want to include the following filter into your instructions:

-vf "pad=ceil(iw/2)*2:ceil(ih/2)*2"
The above command uses the FFMPEG’s “Pad Filter“, which divides both the original widht and height by 2, round it up to the nearest pixel (ceil), multiply by 2 again for make it an even number and adding black padding pixels (if needed) up to this number.

Color of the padding can be changed using the option “:color [COLOR]” at the end, such as follows:

-vf “pad=ceil(iw/2)*2:ceil(ih/2)*2:color white”

(See FFMPEG’s Color Syntax reference for more details on changing color values).

Then, again, you may want to specify the rate (FPS=frame per second) of the video input with the “-r” option (after the “-i”).

Then specify an output quality for the h264 encoder, with the “-crf” option (default value is 23), and finally mapping your audio and picture inputs with the “-map” option.

The final working command will be as in this example:

ffmpeg -i YOUR-AUDIO.aac -i YOUR-PICTURE.jpg -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" -crf 18 -map 0:a -map 1:v -r 25 YOUR-FINAL-VIDEO.mp4
La de veces que usé yo ese software,eso si,hace 10 años o mas.
@katatsumuri en realidad buscas un software para unir STREAMS [uno de video con uno de audio]; si fuera para FRAMES me estarias preguntando por la manera de juntar varias imagenes individuales en un stream de video. Un stream en el conjunto de datos, el stream de video seria el conjunto de datos de varios fotogramas en secuencia que nos dan la sensacion de movimiento.

Como sea...

ESPECIFICAMENTE lo que requieres se llama MULTIPLEXOR, multiplexar es unir dos o mas streams en un solo paquete, ese paquete es en este caso el archivo de video. FFMPEG no es un multiplexor en si, pero si cuenta con uno integrado pero no es la mejor opcion en la mayoria de ocasiones. Por otro lado, los editores de video y programas de codificacion [como seria VirtualDUB o MediaCoder y similares] cuentan con un multiplexor [o varios] integrado para dar la salida final al audio y video que han codificado.

Un multiplexor no es un software que codifique los streams de audio y video sino que solo crea una copia exacta de esos datos, asi que no estan cambiando la calidad del audio ni del video y ademas se hace muy rapido la union de esos datos para crear el archivo de video.

Si vas a unir un stream de video en formato h264/h265 lo mejor es unirlos en un GRANDIOSO archivo MKV o en un pedorrin y ridiculo archivo MP4, y para cada uno cuentas con su multiplexor correspondiente. Para MKV usas el multiplexor oficial MKVMERGE [que viene en el paquete MKVToolNix], para MP4 no hay un multiplexor oficial [el mas comun es MP4Box], pero cualquiera funciona. Y basicamente todos losmultiplexores trabajan igual [los que estan basados en una interfaz de ventanas]:
- Arrastras los archivos stream de video y audio, elprimer stream siempre debe ser de video, si hay mas stream de video a usar seran los siguientes en colocarse,detas de los streams de video estaran los streams de audio, y siempre al final de streams de video y streams de audio estaran los archivos de subtitulos [si es que llevga subtitulos flotantes].
- Das los detalles del streams o streams de video, que seria, resolucion y velocidad de cuadro, para los de audio das el detalle de si llevara un retardo [delay], el cual es muy comun que se le de mas tiempo al software o aparato reproductor cargue antes unos segundos del streams de video y despues ya comienze la reproduccion del audio [y tiene logica, porque requiere mas trabajo de procesamiento la descompresion del stream de video que la descompresion del audio].
- Dar un nombre al archivo que se va a crear y ubicacion.
- Pulsar el boton MUXING y listo

Tambien estan los multiplexores bsasdos en CLI [linea de comandos desde le ventana cmd]

MKVMerge y MKVToolNix
-->mkvtoolnix.download/downloads.html#windows
Imagen


Un agregado de ultima hora...

Mostrando la versatilidad de usas el multiplexor sobre otras opciones. Aqui mezclare dos videos para crear uno solo, usare solo el stream de video de un archivo y usare solo las pistas de audio y subtitulos del otro archivo de video. En este caso ambos archivos de video vienen en contenedor MATROSKA, pero pueden ser diferentes [en MP4 u OGM o en AVI o en FLV, entre otros].

Algo que notaras es que en ningun momento necesitare EXTRAER los streams de audio y video que voy a unir, sino que pude usar directo los archivos de video y el multiplexor mismo tomara solo los streams que le indiques que use para la creacion delnuevo archivo de video.

En este ejercicio usare dos archivos de video para tomar solo algunos streams de cada uno, ignorando el resto de streams, y asi conseguir un archivo final resultante con solo los streams que me interesan tener para ese archivo devideo final.

Uno de los archivos cuenta con un rip del stream de video mejor hecho y que mejor aprovecha la resolucion, los streams de audio estan bien pero... El otro archivo de video cuenta con streams de audio de mejor calidad, ademas de tener un idioma mas; a mi me gusta tener los videos en varios idiomas junto con el idioma original. Ambos videos duran exactamente lo mismo y usan la misma velocidad de cuadro [en este caso 24fps] lo que facilita el poder unirlos sin mucho rollo, ambos no tienen DELAY en sus streams de audio, asi que la configuracion es mas rapida porque no hay que poner nada de delay para cada pista [stream] de audio. Entonces para facilitarme el trabajo coloco primero el archivo del cual solo usare el stream de video y desmarcare las casillas correspondientes al audio y video, finalmente hare la configuracion de la RELACION DE PANTALLA [o dejar directamente la resolucion si se da el mismo resultado], Despues arrastro el segundo video, desmarco el stream de video; que voy a desechar, asi quedan seleccionados los streams de audio y subtitulos del segundo video, ya solo es dar el muxing y listo, tendre un archivo nuevo con el video del primer archivo de video y con el audio del segundo archivo de video.

*** Creando un archivo de video en contenedor MATROSKA
Multiplexor MKVMERGE/MKVToolNix.
En la imagen se notan los dos archivos de video. He marcado con una flecha los ajustes que tuve que hacer para el stream de video que voy a dejar como fue poner que la velocidad de cuadro es de 24fps y la relacion de pantalla es de 2.35:1 [mas o menos 21:9]. Se notan que he desmarcado las casillas de los streams que voy a desechar y que no se ocuparan en la creacion del video final. Al pulsar el boton STAR MUXING tendre un archivo MKV
Imagen



*** Creando un archivo de video en contenedor MP4
Multiplexor MP4Box, y usando la interfaz grafica YAMB [tambien se puede usar la interfaz grafica MP4Box_GUI]
En la imagen se notan igualmente ambos archivos de video MKV, se notan las casillas desmarcadas de los streams de audio y video que se van a desechar en el archivo MP4 que estoy creando. Igualmente coloque una flecha indicando los ajustes que se estan realizando para el stream de video.
Imagen


En los ajustes del stream de video automaticamente detecta que el video esta a 24fps, asi que no hay que ajustarlo, pero la RELACION DE PIXEL [la resolucion a la que se codifico el video] hay que ajustarla para que se muestre en la RELACION EN PANTALLA conque debe verse. En este caso la relacion de pantalla es de 21:9 [o 2.35:1] pero el video esta codificado a una relacion de pixel de 16:9, para indicarle al reproductor que cuando reproduzca el video 'lo estire' hasta los 2.35:1 se debe hacer la modificacion siguiente: La relacion 21:9 es simplemente estirar 1.33 veces la relacion 16:9, por eso en la opcion PIEXEL ASPECT RATIO hay que indicar que el video debe estirarlo 1.33 veces [4/3 o como se usa en la terminologia del video 4:3], por eso aparece los de CUSTOM 4:3. En el caso del contenedor MATRSOKA se puede indicar directamente la relacion de pantalla del video reproducido, pero en el contenedor MP4 parece que no es posible hacerlo por lo que hay que hacer la adaptacion uno mismo, no es complicado, pero siempre seria mejor fuera directo
Imagen

Al pulsar el boton SIGUIENTE se creara un archivo MP4 con los streams que deje marcados.


La creacion del video final en ambos casos toma unos segundos, pues como decia un multiplexor no es un encoder asi que solo copia los streams que se le indiquen, obteniendo la misma calidad del audio y video de los archivos originales. En este caso en particular la unica 'dificultad' fue que la relacion de pixel [la resolucion en que se codifico el video] es diferente a la relacion en pantalla [la forma en como debe aparecer la imagen al reproducirse], pero la mayoria de las veces la relacion de pixel y de pantalla es la misma por lo que a menudo se puede ignorar esta parte dejandolo como aparece por defecto en las opciones del multiplexor.


.
@TRASTARO con frames me refiero a imágenes .png o jpg que representan una escena, los fotogramas en si de un vídeo que no dejan de ser una sucesión de imágenes por segundo.

He probado con Virtualdub, pero con el enconder H264 me da un error bastante reconocido

Imagen
Imagen

¿Podría ser por tener las imágenes en .png? Pesan una locura y apenas puedo visualizarlas, hay veces que se me cuelga el explorador al intentar abrir una.

De todas formas al final lo he hecho con premiere


Solo hay que darle a importar, se selecciona la primera imagen de la secuencia y hay que marcar la casilla de importar secuencia, aunque también hay que cambiar los frames del proyecto para que la secuencia se adapte a los frames de la línea de tiempo.

Me he vuelto a instalar voukoder que no lo tenía al haber formateado recientemente para windows 11 así podré exportar en MKV desde premiere.


Separar frames con ffmpeg
ffmpeg -i *videonamefile.extensionfile soa%04d.png -hide_banner
3 respuestas