Cette question a déjà une réponse ici:
Actuellement, je suis en train de convertir des fichiers flash .flv en fichiers .webm et .mp4 à utiliser avec un lecteur vidéo HTML5.
_
J'utilise cette commande ffmpeg pour WEBM: ffmpeg -i filename.flv -vcodec libvpx -acodec libvorbis filename.webm
cela fonctionne très bien et la taille du fichier reste relativement la même (imporatant).
_
Pour MP4, j'utilise les éléments suivants: ffmpeg -i filename.flv -sameq -ar 22050 filename.mp4
Il convertit au format .mp4 fin et empêche toute perte de qualité, mais la taille du fichier est presque multipliée par trois.
Quelle formule de ffmpeg pourrait être utilisée pour convertir en MP4 sans perdre trop de qualité et éviter une taille de fichier beaucoup plus grande?
mpeg4
. Selon la sortie deffmpeg --help muxer=mp4
ma machine, ffmpeg utilise h264 comme codec vidéo par défaut de mp4.Cette commande ne change que le conteneur sans réencodage
la source
for %%a in ("*.flv") do ffmpeg -i "%%a" -codec copy "%%~na.mp4"
:, puis exécutez convert.bat dans un dossier contenant les fichiers * .flv-codec copy
aucun fichier vers un fichier .mp4 ne fonctionne que dans les cas très rares où les fichiers audio et vidéo sont déjà codés avec H.264 et AAC. Voir superuser.com/a/1009539/390946 et addpipe.com/blog/flv-to-mp4 .avconv
etffmpeg
sont essentiellement la même chose. [Depuis très récemment, il y a une certaine divergence, mais pas grand chose à écrire si vous compilez votre propreffmpeg
[celui fourni par Ubuntu repos par exemple est OLD et souffre de la taille de la vidéo n’est pas un accord bla bla blah [essaie fondamentalement pour vous dire que la vidéo a de mauvaises proportions], mais si vous prenez la peine de lire leffmpeg
guide de compilation et de le compiler à partir de git, il ne contient aucun des problèmes des versions plus anciennes qui sont en stock dans la plupart des systèmes d'exploitation. l'avertissement d'amortissement se référant àavconv
vous dit qu'ils ont créé une nouvelle util pour essayer de le remplacerffmpeg
, mais il est SO largement utilisé que même s'ils ont essayé de le couper , nous serions tous en train de créer de liens logicielsavconv
àffmpeg
de toute façon pour ne pas arrêter le travail et le laisser tomber.]]Ce n'est pas une mauvaise chose à utiliser
avconv
, je viens de voir la réponse mentionnant l'avertissement de dépréciation qui est essentiellement un message vide devrait plutôt être une alternative à ffpmeg, vous pouvez essayer avconv qui est plus vrai dans le cas présent.est vraiment le même que
essentiellement dans le premier cas, vous utilisez les options à mains courtes et dans le second, la variété la plus écrite.
ALSO
-map 0
fait également référence aux pistes audio. Ainsi, si vous utilisez quelque chose commemp4a
ce qui peut gérer très bien plusieurs pistes audio, vous pouvez laisser cette option désactivée pour copier tous les flux audio dans le fichier résultant. Cela n’est nécessaire que si vous utilisez un codec qui ne prend pas en charge plusieurs pistes audio dans le même fichier, vous voudrez alors mapper l’audio nécessaire et non tout. Bien sûr, si vous essayez de minimiser l'espace utilisé, vous pouvez en spécifier un seul pour essayer de réduire un peu la taille du fichier [l'audio est peut-être un tiers de la taille de la piste vidéo [et c'est généreux]].-c:v = codec(video)
so:-c:v libx264
est la même chose que d'utiliser:-vcodec libx264
FYI; idem avec cet exemple:-c:v copy = -vcodec copy
et en outre, pour les fichiers FLV, veillez à ce que le fichier flv soit identique à un fichier AVI dans la mesure où il s’agit d’un conteneur pouvant contenir un nombre illimité de codecs pour la vidéo ou l’audio. Vous voudrez d’abord utiliser l’utilitaire d’inspection des médias de votre choix pour voir ce qui est utilisé dans le fichier lui-même avant de choisir de simplement copier le flux vidéo et / ou audio ou si vous souhaitez le transférer à partir de quelque chose de nouveau. Ainsi, la commande qui fonctionne le mieux pour un fichier FLV peut ne pas être la même pour un autre fichier FLV [bien entendu, si vous obtenez plusieurs fichiers FLV de la même source, ils seront codés de la même manière, mais ce n'est jamais une garantie].
N'essayant pas de choisir, nous avons rencontré cela dans la recherche sur le Web et je voulais essayer de clarifier un peu les choses pour les gens.
Encore une fois, comme cette réponse l'indique pour la réponse ci-dessous, la réponse est oui, si ffmpeg publie toujours ce message, il est essentiellement creux car ces deux utilitaires sont toujours les mêmes, avec très peu de différence. Dans presque tous les cas, vous devriez obtenir exactement les mêmes résultats en utilisant l'une ou l'autre de ces commandes. Cela n'entraînera pas nécessairement un recodage complet, pourquoi? A, si vous n'en avez pas besoin, cela vous fait gagner beaucoup de temps, et B, si vous recodifiez un fichier dans lequel il a déjà été compressé en un codec vidéo, vous exécutez essentiellement une routine de compression par rapport à quelque chose qui est déjà compressé et qui aboutira toujours. en moins de qualité que la source. La plupart des codecs plus récents sont quelque peu compatibles entre eux, comme par exemple un flv qui pourrait techniquement être un MP4 dans un wrapper FLV, car les FLV comme les AVI ne sont que des conteneurs d'autres codecs. Alors, cela dépend de ce que le flv source a pour la vidéo et le codec ausio par rapport à ce que vous convertissez pour savoir s'il faut le transcoder ou non. Si, dans le fichier FLV, ils utilisaient la vidéo MP4 H264 et MP4a pour l’audio, vous n’auriez pas besoin de recodifier le fichier, il vous suffirait de le copier et d’ajuster les en-têtes de fichier pour qu’il soit lu comme un véritable MP4 au lieu d’une vidéo MP4. dans un fichier FLV.
la source
Selon ce guide , la commande appropriée pour convertir FLV en MP4 sans aucun recodage AV est la suivante:
Cela a parfaitement fonctionné pour moi dans tous les cas avec AVC vidéo et audio AAC ou MP3.
la source
Lors de l'utilisation de ffmpeg, un avertissement de dépréciation a été émis pour utiliser avconv. En utilisant avconv, j'ai obtenu de bons résultats:
Lire
man avconv
pour plus d'informations.la source
ffmpeg
lui - même n'est pas obsolète . Cela semble intéressant parce que vous spécifiez le codeur x264 qui a de beaux paramètres par défaut pour la qualité.Je vous suggère de créer un script shell pour celui appelé
video_flv_to_mp4
avec le contenu suivant:Puis lancez ça comme ça:
Cela vous donnera un fichier video.flv.mp4.
la source
-sameq
n’est plus une option valide pour ffmpeg. Cela ne signifie pas non plus "même qualité". Voir aussi ce post .