Ricodifica il file AVI per adattarlo alla dimensione del file di output specificato.

StackOverflow https://stackoverflow.com/questions/315488

  •  10-07-2019
  •  | 
  •  

Domanda

Ho un file AVI, che voglio ricodificare per adattarlo a un CD delle dimensioni di 650 MB. Come posso codificare in modo tale che la dimensione del file non superi la dimensione indicata? Quale programma posso usare?

È stato utile?

Soluzione

AutoGK può farlo in modo molto efficace. Progettato principalmente per scopi di backup di DVD **** tosse ****, ma accetterà anche AVI come sorgente. È più una raccolta di programmi opensource con una GUI coordinata, quindi non preoccuparti quando il programma di installazione installa diversi elementi.

Altri suggerimenti

Presumo che tu voglia farlo a livello di codice:

Per Windows:

Puoi utilizzare directshow per transcodificare il tuo video creando un grafico di filtro.

Ottieni (se non hai già) l'SDK della piattaforma per Windows. Quindi sfoglia qui per vedere alcuni degli esempi di directshow che costruiscono grafici di filtri per la transcodifica.

Per compilare avrai bisogno delle classi base. Puoi costruirli qui:

C:\Program Files\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses

Quindi controlla gli esempi qui:

C:\Program Files\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow

Puoi anche creare manualmente grafici di filtri per capire come vengono usati e vedere come hanno senso queste cose (come l'enumerazione degli encoder che imparerai negli esempi):

C:\Program Files\Microsoft SDKs\Windows\v6.1\Bin\graphedt.exe

Una volta che sei andato così lontano e hai capito come funziona directshow puoi usare un po 'di matematica per capire come transcodificare il tuo video per adattarlo alle dimensioni che desideri. Per fare ciò, potresti voler esaminare quanti frame / sec è il tuo video di input e quanto è grande ogni frame.

Encoder diversi funzionano in modi diversi:

Supponiamo che tu stia transcodificando un file avi in ??un file avi di qualità inferiore o inferiore. Osserva le dimensioni dei frame di input e i fps per determinare l'intera dimensione del file, quindi usa un po 'di algebra per capire come ridurre la dimensione dei frame o ridurre il numero di frame al secondo (o una combinazione di entrambi) per ottenere la dimensione desiderata (che può essere la tua variabile di input).

Come per gli altri encoder, potresti voler vedere come funzionano. Gli encoder con perdita di dati come mp4 eseguono stime per scoprire quale video è cambiato da un fotogramma all'altro e che le informazioni vengono archiviate nel file per ricostruire i fotogrammi. Dovrai leggere come funzionano - o controllare per vedere come usare il tuo particolare codificatore per maggiori dettagli.

Per Linux (e anche Windows):

Puoi utilizzare ffmpeg che è un prodotto all-in-one per la transcodifica e altre cose per i video. Puoi persino trovare exe preconfigurato dell'applicazione da riga di comando, anche se la pagina principale non lo ospita (solo l'origine). Questa applicazione utilizza librerie video open source per eseguire molte transcodifiche video e molte altre cose. Se riesci a trovare un buon file exe affidabile, probabilmente dovresti verificarlo se vuoi qualcosa che sia facile da usare per la tua applicazione. Dai un'occhiata alla loro homepage qui.

Spero che questo ti inizi.

Per adattarlo a una dimensione specifica, è necessario utilizzare una velocità in bit appropriata.

Per i video con velocità in bit fissa, per ottenere la velocità in bit target, è necessario prendere la dimensione target, in bit e la lunghezza della sorgente in secondi.

target bit-rate = size / seconds

Ad esempio:

seconds = (90mins * 60) = 5400
size = ((650MB * 1024) * 8) = 5324800
target bit-rate = ~986 kilobytes per second

Con bit rate variabile, le cose sono piuttosto complicate. Non sono del tutto sicuro se esiste un modo per impostare con precisione il file di output in una dimensione impostata. Il modo più semplice è calcolare la velocità in bit massima utilizzando il metodo sopra,

Calcola il numero di secondi che l'AVI è. Quindi, prendi le dimensioni del file e dividi per la lunghezza. Converti in kilobit al secondo e usalo come mediana in bitrate. (Usa Google per eseguire facilmente la matematica e la conversione.)

Puoi pesare i bitrate video e audio come desideri. Di solito 96 kbps è abbastanza buono con AAC, ma potresti volerne di più o di meno. Esperimento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top