J'aimerais télécharger quelques vidéos sur youtube et les convertir en 3gp afin de pouvoir les lire sur mon téléphone. Je voudrais savoir comment cela peut être fait en utilisant ffmpeg.
J'ai essayé les différents résultats sur le net pour obtenir les erreurs suivantes.
J'ai utilisé:
ffmpeg -i dil.mp4 -sameq -ab 64k -ar 44100 dilenada.3gp
J'ai eu:
Unsupported codec for output stream #0.1
La fréquence de trame du codec du flux 0 diffère de la fréquence de trame du conteneur: 2000.00 (2000/1) -> 29.92 (359/12)
J'ai utilisé:
ffmpeg -y -i dil.mp4 -r 20 -s 352x288 -b 400k -acodec libfaac -ac 1 -ar 2000 -ab 24k dilenada.3gp
J'ai eu:
Seems stream 0 codec frame rate differs from container frame rate: 2000.00 (2000/1) -> 29.92 (359/12)
Unknown encoder 'libfaac'
Qu'est-ce que je fais mal?
Utilisez la commande suivante:
ffmpeg -y -i movie.mp4 \
-r 20 -s 352x288 -vb 400k \
-acodec aac -strict experimental -ac 1 -ar 8000 -ab 24k \
movie.3gp
Vous devez probablement juste installer les paquets non libres/restreints de ffmpeg comme libavcodec-extra-53 libavformat-extra-53 libavutil-extra-51
et les goûts.
Appeler ffmpeg avec --list-encoders
affichera les encodeurs disponibles.
Vous faites tout bien :). Vous devrez installer pour que la conversion fonctionne.
Suppléments restreints Ubuntu, c’est-à-dire libavcodec-extra-53
Vous pouvez l'obtenir à partir du centre logiciel ou utiliser la commande suivante
Sudo apt-get installez ffmpeg libavcodec-unstriped-52
J'ai aussi eu des problèmes avec ffmpeg
Apparemment, Ubuntu n’utilise plus ffmpeg, mais un fork appelé avconv. Cela rend certaines (beaucoup?) Commandes trouvées sur des sites inutilisables sur Ubuntu.
Ce que j'ai fait était juste de récupérer le ffmpeg original:
Sudo add-apt-repository ppa:jon-severinsson/ffmpeg
Sudo apt-get update
Sudo apt-get install ffmpeg
je ne sais pas dans quelle mesure cela vous aiderait, bien que
Afin de résoudre ce problème, la seule option peut être build from source
. Cela a résolu tous les problèmes pour moi. J'ai désinstallé l'un des packages ffmpeg
actuellement présents sur le système que j'avais essayé d'utiliser et tilisé cet excellent guide de compilation Ubunt . C’est la seule façon pour moi d’encoder des formats propriétaires tels que mp4 et mp3.
En outre, le script suivant, que j'ai modifié (attribution au créateur d'origine), peut à nouveau être modifié et utilisé pour convertir mp4 to 3gp
ou mp4 to mp3
(pour extraire l'audio), ou quoi que ce soit d'autre. Il conserve également le nom d'origine du fichier dans le fichier récemment converti: Il est toutefois important de renseigner les options correctement.
Vous pouvez utiliser différentes options pour 3gp; Par exemple, vous souhaiterez peut-être une résolution différente de qcif
(176x144), mais j’ai trouvé que ces paramètres fonctionnaient initialement pour moi avec ma version compiled
de ffmpeg
. (La conversion peut prendre un certain temps, selon la puissance de votre processeur, car sa conversion en 3gp réduit considérablement la taille du fichier: 314 Mo à 13 Mo pour l'une de mes conversions!)
Enregistrez ce script ci-dessous dans un nouveau document et rendez-le exécutable (chmod +x
), placez-le dans le dossier souhaité et exécutez-le; ou utilisez le terminal pour sélectionner le dossier dans lequel se trouve le script et le dossier cible contenant les fichiers; par exemple. ~/Scripts/script ~/Downloads
#!/bin/bash
for f in *.mp4
do
name="${f/.mp4/.3gp}"
ffmpeg -i "$f" -vcodec h263 -s qcif -r 15 -b 100k -acodec libfaac -ac 1 -ar 32000 -ab 64k -f 3gp "$name"
done