usare ffmpeg per trasformare mp4 nello stesso file avi di alta qualità?


28

Vorrei usare ffmpeg per trasformare un file video mp4 in avi ma con la stessa qualità, anche se occupa più spazio. Se lo faccio semplicemente:

ffmpeg -i file.mp4 file.mp4.avi

Il file avi risultante è di qualità molto bassa e pixelato. Come posso fare questa trasformazione mantenendo la qualità audio e video?


3
È possibile utilizzare -sameqswitch, che inserirà lo stesso codec video (presupponendo H264) nel contenitore AVI. Se il tuo lettore non supporta H264 in AVI, allora devi transcodificare il miglior formato video possibile (H264) in un formato mediocre, il che non va bene. Quindi si assegna un bitrate video XVID più elevato (diciamo 2000 Kb / s). L'audio non ha molta importanza IMHO, ma è meglio convertirlo in MP3, quindi AC3
zetah,

Risposte:


16

Si perde sempre un po 'di qualità ogni volta che si transcodifica da un codec a un altro, video o audio, ma forse è possibile evitarlo se si desidera passare dal tipo di contenitore MP4 a un contenitore AVI. codec:copypuò essere utile se non hai motivo di transcodificare (e dovrebbe essere più veloce).

Se devi transcodificare perché devi utilizzare un particolare codec video, spero che tu possa usare il suggerimento di zetah sopra nel suo commento e usare l'opzione -sameq. In alternativa, potresti voler utilizzare l' qscaleopzione per impostare manualmente la qualità. Più basso è il numero, migliore è la qualità, ma maggiore sarà lo spazio necessario al file.

L'ultima volta che ho transcodificato il video che ho usato qscale=8.0, ma ti suggerirei di sperimentare per trovare l'ideale per abbinare la qualità del tuo input.

Marty Jay menziona utilmente che sameq significa lo stesso quantizzatore dell'input, il che potrebbe non portare alla stessa qualità. L'articolo che cita menziona l'uso della conversione multi-pass, che è un buon modo per ottenere una migliore compressione senza sacrificare la qualità.


Grazie per i suggerimenti, proverò a -sameqvedere come va.
719016,

8
-sameq NON significa la stessa qualità; ffmpeg.org/trac/ffmpeg/wiki/…

3
Sembra che si consiglia di utilizzare l' -qscale 0opzione
user989762

Abbastanza vecchio, ma ho ricevuto questo avviso cercando di farlo oggi:Option 'sameq' was removed. If you are looking for an option to preserve the quality (which is not what -sameq was for), use -qscale 0 or an equivalent quality factor option.
Dave Lugg,

10

La mia soluzione:

ffmpeg -i filename.mp4 -vcodec copy -acodec copy filename.avi

Godere!!


2
Tieni presente che l'incorporamento di flussi AVC in contenitori AVI richiede un hack supportato da molti lettori video gestiti dalla community (ad esempio VLC, MPlayer, qualsiasi cosa FFmpeg / Libav o GStreamer, Media Player Classic) ma non da molti player commerciali (ad esempio Windows Media Player e QuickTime / iTunes non lo supportano).
David Foerster,

4

Ecco il mio 2-pass (Advanced Simple Profile) che utilizzo di tanto in tanto.

passare 1:

ffmpeg -i file.mp4 -vcodec mpeg4 -vtag XVID -b 990k -bf 2 -g 300 -s 640x360 -pass 1 -an -threads 0 -f rawvideo -y /dev/null

passare 2:

ffmpeg -i file.mp4 -vcodec mpeg4 -vtag XVID -b 990k -bf 2 -g 300 -s 640x360 -acodec libmp3lame -ab 128k -ar 48000 -ac 2 -pass 2 -threads 0 -f avi file.avi

Fantastico, mi ha prodotto un avi molto piccolo con una qualità molto buona!
jpo38
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.