Risposte:
Se sei in Windows, puoi farlo anche in Windows Movie Maker ... se hai bisogno di istruzioni, lascia un commento
Per FFmpeg usa questo
ffmpeg -loop_input -vframes 14490 -i imagine.jpg -i audio.mp3 -y -r 30
-b 2500k -acodec ac3 -ab 384k -vcodec mpeg4 result.mp4
vframes 14490 è il numero di frame che dovrebbero essere sottoposti a loop per avere un'immagine continua per l'intero file audio.mp3
Esempio: per 8 minuti e 3 secondi ((8m x 60s + 3s) x 30fps = 14490 vf)
Risorsa da qui
Esiste un modo molto più semplice di quelli suggeriti qui, che non richiede il calcolo del numero di frame o l'inserimento della lunghezza dei singoli file (specialmente meglio per l'elaborazione batch). Con una versione recente di ffmpeg, è possibile utilizzare l' -shortest
opzione, che interrompe la codifica quando termina il flusso più breve - in questo caso, input.mp3 (poiché l'immagine avrà un ciclo continuo per sempre, ha una lunghezza infinita):
ffmpeg -i input.mp3 -f image2 -loop 1 -r 2 -i input.jpg \
-shortest -c:a copy -c:v libx264 -crf 23 -preset veryfast output.mp4
Questo utilizza 2 fotogrammi al secondo per l'immagine / il video, il che dovrebbe andare bene, ma puoi impostarlo su un 25 più standard, se lo desideri.
subanki aveva quasi ragione. La riga di comando funzionante è la seguente;
ffmpeg -y -loop 1 -i image.jpg -i audio.mp3 -r 30 -b:v 2500k -vframes 14490 -acodec libvo_aacenc -ab 160k result.mp4
sovrascrivere i file di output senza chiedere conferma
L'opzione '-loop_input' è obsoleta utilizzare -loop 1. Consultare la documentazione di ffmpeg .
file di input
I frame al secondo
potrebbero anche essere espressi come: -r 30000/1001 con un fps di 29,97 nn
bitrate video; maggiore è il numero, migliore è la qualità e maggiore è la dimensione del file.
Come spiegato sopra; prendi il tempo totale del tuo file audio in secondi (es. 00:02:41 (2 minuti 41 secondi) equivalgono a 161 secondi totali (2 x 60) + 41). Quindi moltiplica i secondi totali per i frame al secondo che hai specificato con -r (ad esempio 161 x 30 = 4830).
-vframes può essere sostituito con -t 161 (-t registra la durata o transcodifica i "durata" secondi di audio / video)
Utilizzare il codec audio corretto per il tipo di file che si sta creando. Per .mp4 dovrebbe essere un formato AAC. Il codec libvo_aacenc era il codec di codifica corretto per il mio sistema Windows 7.
bitrate audio
Questo è il nome del file di output. Può essere qualsiasi nome di file legale per il tuo sistema. L'estensione aiuterà ffmpeg a determinare il codec video corretto se non lo specifichi usando -vcodec.
Quel semplice script bash / cygwin che AUTOMAGICAMENTE codificherà tutti i file dell'estensione $ AUDIO nella directory in file video mp4 10FPS nella directory con l'immagine folder.jpg incorporata,
utile per i caricamenti di YouTube;)
AUDIO=m4a;
$'\n'; for a in `ls -1 *.$AUDIO `; do ffmpeg -i $a &2> $a.info ; done;
cat '' > do.sh
IFS=$'\n';
for a in `ls -1 *.$AUDIO`; do D=`grep Duration $a.info | cut -d',' -f1 | cut -d' ' -f4 | cut -d'.' -f1 | head -n1 `; S=$(( $( echo $D | cut -d':' -f2 ) * 60 + 1 + ` echo $D | cut -d':' -f3 ` )) ; echo ffmpeg -loop_input -vframes $(( $S * 10 )) -i folder.jpg -i \"$a\" -y -r 10 -b 2500k -ab 384k -vcodec mpeg4 \"$a.mp4\" >> do.sh; done;
split -l5 do.sh
xa* &
Scarica VirtualDub , quindi esegui questa operazione:
Apri l'immagine come se aprissi un normale file video.
Calcola la durata dell'audio in secondi e arrotondala al secondo intero più vicino (es. 78.34 sec diventa 79 secondi). Questo valore si chiama x da ora in poi.
Vai a "video> frame rate" seleziona "cambia in frame rate (fps)" e inserisci "1 / x" come valore. Inoltre, se si desidera avere una frequenza dei fotogrammi normale nel file risultante come 25 fps, selezionare "Converti in fps" e inserire la frequenza dei fotogrammi desiderata.
Seleziona "video> compressione" e scegli il tuo gusto preferito. È possibile che sia necessario regolare le dimensioni dell'immagine con il filtro di ridimensionamento.
Vai su "audio> audio da un altro file" e seleziona l'audio lì. Se necessario, selezionare una compressione per l'audio.
Salva il file.
Fonte: stephanV