¿Cómo insertar por lotes la misma escena de clip al comienzo de varios videos?

¿Cómo insertar por lotes la misma escena de clip al comienzo de varios videos?

Bueno, han pasado algunos días investigando una forma automática o semiautomática adecuada de fusionar archivos en masa de esta manera. Básicamente, lo que quiero lograr es insertar el mismo clip, antes que muchos otros clips.

En este caso he estado intentando con archivos .flv, .mp4, .avi (siempre fusionando los mismos códecs) y no tuve éxito después de probar.todos los programas disponiblestanto en Windows como en OSx. Créeme, los he probado todos. Los únicos que se supone que pueden manejar bastante bien este tipo de tareas son los de Videocharge:Maestro de marcas de aguayEstudio de carga de video. Ninguno de ellos pudo realizar correctamente la tarea. Tal vez había alguna manera de haber logrado esto escribiendo un script conDespues de los efectosoSony Vegas, simplemente no encontré ninguno.

Ahora estoy tratando de encontrar alguna manera de lograr lo mismo ya sea mediante shell, scripting Unix... No me importa. Simplemente no quiero montar Ubuntu sólo para estas tareas. No soy programador, pero soy bastante testarudo (lo que a veces me lleva a pasar noches interminables), por lo que agradecería la ayuda u orientación de cualquier persona interesada y lo suficientemente buena en el procesamiento de vídeo por lotes o en la creación de secuencias de comandos.

En este momento, los únicos caminos útiles que he encontrado me llevan a usarcódigo menoffmpega través de comandos, pero no puedo realizar la combinación por lotes. No me importa la forma de ordenar los videos. Pero teniendo en cuenta que la operación se realizaría en cientos o miles de vídeos, no sería adecuado tenerlos todos en carpetas separadas, cada una acompañada de un clip de introducción "único". Supongo que la forma más lógica sería almacenar el "grupo" de videos en una carpeta y el clip de introducción en la misma carpeta que el codificador o renderizador.

Gracias de antemano por cualquier ayuda u orientación,

Respuesta1

Bueno, agregué videos, pero nunca los agregué al principio. ¡Puedes usar avidemux para agregar los videos!

No soy bueno con JavaScript, así que discúlpeme por no escribir esto para usted. Hay un tutorial para secuencias de comandos para Avidemux. Avidemux es un conversor de vídeo gratuito y de código abierto. Puedes agregar efectos a tu audio/video en avidemux y guardarlo en múltiples formatos.

Este script es un tutorial de ejemplo en el enlace de la página que se proporciona aquí: [::: enlace :::] y el script simplemente escaneará el directorio orgDir y descomprimirá todos los archivos AVI. El archivo resultante se coloca en el directorio destDir (usando la nueva API de búsqueda de directorio).

Las funciones de Avidemux son las siguientes: displayError, displayInfo, fileReadSelect, fileWriteSelect, allFilesFrom, nextFile

y más funciones: cargar, agregar, guardar, guardarDVD, guardarOGM, borrarSegmentos, agregarSegmento, goToTime, forceUnpack, setContainer

Más funciones de script aquí:http://www.avidemux.org/admWiki/doku.php?id=using:scripting#avidemux_functions

El Script Turotial que convierte el archivo avi es el siguiente:

//AD  <-
/*
      Simple script that scans the orgDir directory
      and unpack all AVI files
      The resulting file is put in destDir directory
      Using new directorySearch API
*/
var app = new Avidemux();
var ds = new DirectorySearch();
var orgDir;
var destDir;
var reg =new RegExp(".$");
/*
      This is for Unix
      For Windows change to
      sep="\\";
      reg2=new RegExp("\\.*\\");
*/
var sep="\\";
var reg2 =new RegExp("\/.*\/");
var extension;
var target;
//
//
//
//      select files from original & target directories
//
      orgDir=fileReadSelect();
      destDir=fileWriteSelect();
      orgDir=pathOnly(orgDir);
      destDir=pathOnly(destDir);
//
//      strip last \\ or //
//
      orgDir=orgDir.replace(reg,"");
      destDir=destDir.replace(reg,"");
      print("orgDir : <"+orgDir+">");
      print("destDir : <"+destDir+">");
//
// Go
//
if(ds.Init(orgDir))
{
  while(ds.NextFile())
  {
      // Only process file we want i.e. AVI
      if(!ds.isNotFile && !ds.isDirectory && !ds.isHidden && !ds.isArchive && !ds.isSingleDot && !ds.isDoubleDot)
      {
          extension=ds.GetExtension();
          if(extension == "avi")
          {
              target=ds.GetFileName();
              target=destDir+sep+target;
              print("***"+ds.GetFileName()+"-->"+target);
              processFile(orgDir+sep+ds.GetFileName(),target);
              }
          //print("File: "+ds.GetFileName()+" is "+ds.GetFileSize()+" bytes, extension "+extension);
      }
  }
  print("We just searched in directory \"" + ds.GetFileDirectory() + "\"");
  ds.Close();
}
else
  displayError("Error initializing the directory search");
displayInfo("Finished !");
function processFile(filename, targetfile)
{
      // Load the file
      app.forceUnpack();
      app.load(filename);
      app.rebuildIndex();
      app.audio.delay=0;
      app.audio.mixer("NONE");
      app.audio.scanVBR();
      app.setContainer("AVI_UNP");
      app.save(targetfile);
      return 1;
}

Espero que esto ayude...

fuentes:

Respuesta2

Muchas gracias por tu sugerencia @ usuario2377276. Realmente aprecio el esfuerzo. De hecho, su solución es la que me está guiando en la dirección correcta. Bueno, eso espero, ya que todavía no lo he logrado. Hasta ahora, lo más cerca que he estado de lograr la fusión fue a través de diferentes variaciones del siguiente código, ejecutado en el mismo directorio que los múltiples videos diferentes. El archivo único para agregar se colocó en la raíz y creé C:/TEMP para la salida.

para %a en ("*.flv") haga Mencoder -oac copy "c:\INTRO.flv" "%a" -o "c:\TEMP\%a"

Todos los videos están en FLV1, pero tienen una resolución ligeramente diferente, así que básicamente me estoy poniendo mal.

No sé si debería probar con ffmpeg. ¿Sugerencias?

Estoy bastante seguro de que esto se puede lograr sin la necesidad de volver a codificar, ya que he probado varios programas y ninguno de ellos está recodificando, solo están forzando la resolución en algunos casos. De hecho, el programa que pareció comportarse mejor fue la aplicación de AIR Rich Flv, pero no funciona por lotes.

información relacionada