Jak wsadowo wstawić tę samą scenę klipu na początku wielu filmów?


0

Cóż, od kilku dni szukałem odpowiedniego automatycznego lub półautomatycznego sposobu masowego łączenia plików w ten sposób. Zasadniczo to, co chcę osiągnąć, to wstawienie tego samego klipu przed grupą innych klipów.

W tym przypadku próbowałem z plikami .flv, .mp4, .avi (zawsze łącząc te same kodeki) i nie udało mi się po przetestowaniu wszystkich programów dostępnych zarówno w systemie Windows, jak i OSx. Uwierz mi, próbowałem ich wszystkich. Jedynymi, które mają całkiem dobrze poradzić sobie z tymi zadaniami, są Videocharge: Watermark Master i Videocharge Studio . Żaden z nich nie mógł poprawnie wykonać zadania. Może mógłbym to osiągnąć poprzez pisanie skryptów w After Effects lub Sony Vegas , po prostu nie znalazłem.

Teraz próbuję znaleźć sposób na osiągnięcie tego samego albo przez shell, skrypty unixowe ... Nie obchodzi mnie to. Po prostu nie chcę montować Ubuntu tylko do tych zadań. Nie jestem programistą, ale jestem bardzo uparty (co czasami prowadzi mnie do niekończących się nocy), więc byłbym wdzięczny za pomoc lub wskazówki od każdego chętnego i wystarczająco dobrego w zakresie przetwarzania wsadowego wideo lub skryptów.

W tej chwili jedyne przydatne ścieżki, które znalazłem, doprowadzają mnie do użycia komendy mencode lub ffmpeg , ale nie jestem w stanie wykonać scalenia wsadowo. Nie dbam o sposób uporządkowania filmów. Biorąc jednak pod uwagę, że operacja byłaby wykonywana na setkach lub tysiącach filmów, nie byłoby właściwe, aby wszystkie były w osobnych folderach, z których każdy miałby „unikalny” klip wprowadzający. Wydaje mi się, że najbardziej logicznym sposobem byłoby przechowywanie „grupowych” filmów w folderze i klipu wstępnego w tym samym folderze co koder lub renderer.

Z góry dziękuję za wszelką pomoc lub wskazówki,


najpierw powinieneś poszerzyć swoją wiedzę na temat filmów: kontener, ścieżki, kodeki. kodowanie i multipleksowanie. zajrzyj na forum wideo .
Endoro,

Odpowiedzi:


0

Cóż, dodałem filmy, ale nigdy nie dodałem na początku. Możesz użyć avidemux, aby dołączyć wideo!

Nie jestem dobry w javascripting, więc przepraszam, że nie napisałem tego dla ciebie. Istnieje samouczek dotyczący skryptowania Avidemux. Avidemux to darmowy konwerter wideo typu open source. Możesz dodawać efekty do swojego audio / wideo w avidemux i zapisywać je w wielu formatach.

Ten skrypt to przykładowy samouczek na link do strony podany tutaj: [ ::: link ::: ], a skrypt po prostu przeskanuje katalog orgDir i rozpakuje wszystkie pliki AVI. Wynikowy plik jest umieszczany w katalogu destDir (przy użyciu nowego interfejsu API directorySearch API).

Funkcje Avidemux są następujące: displayError, displayInfo, fileReadSelect, fileWriteSelect, allFilesFrom, nextFile

i więcej funkcji: ładuj, dołącz, zapisz, zapiszDVD, saveOGM, clearSegments, addSegment, goToTime, forceUnpack, setContainer

Więcej funkcji skryptu tutaj: http://www.avidemux.org/admWiki/doku.php?id=using:scripting#avidemux_functions

Turotial Script, który konwertuje plik avi, wygląda następująco:

//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;
}

Mam nadzieję że to pomoże...

źródła:


Witamy w Super User! Chociaż teoretycznie może to odpowiedzieć na pytanie, lepiej byłoby zawrzeć tutaj istotne części odpowiedzi i podać odnośnik.
terdon

dobrze. przepraszam za to ... Zmienię swoją odpowiedź ...
mk117,

0

Bardzo dziękuję za twoją sugestię @ user2377276. Naprawdę doceniam wysiłek. W rzeczywistości twoje obejście prowadzi mnie we właściwym kierunku. Cóż, mam taką nadzieję, ponieważ jeszcze się nie zgłosiłem. Do tej pory najbliżej, jaką udało mi się przeprowadzić scalenie, była inna odmiana następującego kodu, wykonana w tym samym katalogu, co wiele różnych filmów. Unikalny plik do dołączenia został umieszczony w katalogu głównym, a dla wyjścia utworzyłem C: / TEMP.

dla% a w („* .flv”) wykonaj Mencoder -oac skopiuj „c: \ INTRO.flv” „% a” -o ”c: \ TEMP \% a”

Wszystkie filmy są w FLV1, ale mają nieco inną rozdzielczość, więc zaczynam się bzdur.

Nie wiem, czy powinienem spróbować z ffmpeg. Propozycje?

Jestem pewien, że można to osiągnąć bez potrzeby ponownego kodowania, ponieważ przetestowałem kilka programów i żaden z nich nie koduje ponownie, w niektórych przypadkach po prostu wymuszają rozdzielczość. W rzeczywistości program, który wydawał się najlepiej działać, to aplikacja AIR Rich Flv, ale nie działa wsadowo.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.