| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  14-07-2012, 19:59 | #1 | 
| Member Iscritto dal: Jul 2009 
					Messaggi: 81
				 | 
				
				[C++ o Dos] Unire File Video
			 
		Buona sera, sto scrivendo un programma in c++ e sono arrivato al un punto in cui ho bisogno di unire più file video in uno. I file, inoltre, sono molteplici e con nomi imprevedibili e il programma verrà eseguito nella stessa cartella dei video. Ho provato ad usare questo codice dos, validissimo per quasi tutti i tipi file (tranne l'avi, evidentemente -.-), che ho inserito nel solito system("...."): Codice: copy /b *.avi ciao.no Il codice in sè funziona, ma ogni file video nel suo codice interno penso espliciti anche la lunghezza, così quando apro ciao.avi mi riproduce solo il primo video, nonostante le sue dimensioni totali siano la somma esatta di tutti gli avi. Come potrei risolvere? Grazie mille in anticipo   | 
|   |   | 
|  15-07-2012, 14:50 | #2 | 
| Senior Member Iscritto dal: Aug 2001 Città: San Francisco, CA, USA 
					Messaggi: 13827
				 | 
		Un file AVI è un file con una struttura specifica, non puoi semplicemente concatenare i due file insieme , ma devi unirli rispettando la struttura del file. Ti consiglio di leggerti un po' di documentazione su come un file AVI è strutturato e scrivere del codice che unisce i due file in maniera corretta: http://msdn.microsoft.com/en-us/library/ms779636.aspx Oppure, se puoi fare affidamento a un tool esterno. Potresti cercare di vedere se in giro ci sono dei tool a linea di comando che fanno il lavoro che vuoi senza dover scrivere tu l'unificatore. Ciao 
				__________________ GPU Compiler Engineer | 
|   |   | 
|  15-07-2012, 18:17 | #3 | |
| Member Iscritto dal: Jul 2009 
					Messaggi: 81
				 | Quote: 
  Perchè mi rendo conto solo ora che i file originalmente possono essere anche di questi formati... Comunque grazie per l'aiuto, leggerò la documentazione da te fornita   | |
|   |   | 
|  15-07-2012, 19:07 | #4 | 
| Senior Member Iscritto dal: Oct 2001 
					Messaggi: 11471
				 | 
		Wmv e mpg sono formati diversi da avi molto complessi da gestire. Cercare di gestirli a mano dal codice del tuo programma non è impossibile ma è incredibilmente difficile e ti porterebbe via mesi di tempo. Io ti consiglio di cercare un binario già compilato di ffmpeg e lanciarlo dal codice come stai facendo con copy.
		 | 
|   |   | 
|  15-07-2012, 20:07 | #5 | 
| Senior Member Iscritto dal: Jan 2008 
					Messaggi: 8406
				 | 
		L'unica possibilità che hai è quella di usare una libreria come gstreamer http://gstreamer.freedesktop.org/ Alternative sono xine, mplayer e ffmpeg. | 
|   |   | 
|  16-07-2012, 11:39 | #6 | |
| Member Iscritto dal: Jul 2009 
					Messaggi: 81
				 | Quote: 
 Codice: $ mencoder *.avi -oac mp3lame -ovc xvid -xvidencopts pass=1 -o video_finale.avi  Esiste un comando simile per fare la stessa cosa con ffmpeg? EDIT Ho trovato questo codice ffmpeg Codice: ffmpeg -i video1.mpeg -i video2.mpeg -vcodec copy -acodec copy -vcodec copy -acodec copy test12.mpeg -newvideo -newaudio Ultima modifica di skeleton : 16-07-2012 alle 12:02. | |
|   |   | 
|  16-07-2012, 12:02 | #7 | 
| Senior Member Iscritto dal: Apr 2005 
					Messaggi: 5245
				 | |
|   |   | 
|  16-07-2012, 12:31 | #8 | |
| Member Iscritto dal: Jul 2009 
					Messaggi: 81
				 | Quote: | |
|   |   | 
|  16-07-2012, 12:38 | #9 | 
| Senior Member Iscritto dal: Jan 2008 
					Messaggi: 8406
				 | 
		Quelli citati sono tutti programmi che manipolano i file video. Se ti serve semplicemente unire i file puoi usare quelli, altrimenti usi le librerie fornite da mplayer, ffmpeg o gstreamer. Banalmente per unire più file avi faresti così mencoder -oac copy -ovc copy -idx -o output.avi video1.avi video2.avi video3.avi | 
|   |   | 
|  16-07-2012, 12:49 | #10 | |
| Member Iscritto dal: Jul 2009 
					Messaggi: 81
				 | Quote: 
 | |
|   |   | 
|  16-07-2012, 12:51 | #11 | |
| Senior Member Iscritto dal: Oct 2007 Città: Padova 
					Messaggi: 4131
				 | Quote: 
 pare che sia incluso nella distribuzione di MPalyer. 
				__________________ As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) | |
|   |   | 
|  16-07-2012, 12:57 | #12 | |
| Member Iscritto dal: Jul 2009 
					Messaggi: 81
				 | Quote: 
 | |
|   |   | 
|  16-07-2012, 13:11 | #13 | |
| Senior Member Iscritto dal: Oct 2007 Città: Padova 
					Messaggi: 4131
				 | Quote: 
 Se ti interessa sapere di più prova a documentarti. 
				__________________ As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) | |
|   |   | 
|  16-07-2012, 13:19 | #14 | |
| Member Iscritto dal: Jul 2009 
					Messaggi: 81
				 | Quote: 
  Grazie a tutti per l'aiuto, funziona tutto a meraviglia   Ultima modifica di skeleton : 16-07-2012 alle 13:32. | |
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 16:54.









 
		 
		 
		 
		











 
  
 



 
                        
                        










