Je veux lot de convertir un répertoire contenant des centaines de fichiers FLV afin que chaque fichier ait un équivalent MP4. J'essaie d'automatiser ce processus en écrivant un script shell et en l'exécutant depuis le terminal. Comment puis-je faire ça? La plupart des instructions disponibles sont pour Linux à l'aide de FFMPEG, mais je pense que OS X ne l'a pas. Merci. P>
6 Réponses :
Vous pouvez installer FFMPEG via homebrew ou Macports . Le communD pour installer FFMPEG avec homebrew est Brew Install Install FFMPEG code>; De même, la commande à installer FFMPEG avec MacPorts est
Port Sudo Installez FFMPEG code>. Une fois que vous avez installé FFMPEG, voici un script simple (et un peu naïf) pour convertir les fichiers. Vous devrez peut-être ajouter plus d'indicateurs, en fonction des options souhaitées.
#! /bin/bash
function convert_all_to_mp4() {
for file in *.flv ; do
local bname=$(basename "$file" .flv)
local mp4name="$bname.mp4"
ffmpeg -i "$file" "$mp4name"
done
}
convert_all_to_mp4
Ce code a un grand potentiel. Va essayer de sortir. Je peux imaginer tant d'utilisations pour elle autres que cette tâche. Merci. ;-)
Bonjour, je suis nouveau dans ce domaine, aidez-moi s'il vous plaît, où doit ajouter ce script et comment appeler ce script sur le bouton Cliquez sur l'événement
@avi, j'ai mis à jour la réponse pour inclure quelques détails supplémentaires sur la façon d'appeler le script. Cependant, les bases de Bash sont un peu au-delà de la portée de la question. Vous pouvez trouver d'autres informations sur Stackoverflow sur la manière d'invoquer des scripts Bash et de manipuler la variable d'environnement de chemin.
#!/bin/bash shopt -s nullglob shopt -s nocaseglob for file in *.flv do ffmpeg -i "$file" "${file%flv}mp4" done
Vous pouvez le faire avec VLC P>
http://wiki.videolan.org/transcode#transcoding_with_the_command_promppt p>
Langue: strong>
bash p> Prérequis: strong> Explication de mon code strong> p>
Seulement traite des vidéos avec les codecs FLV1 et H264. P> Exemple: strong> p> Journaux: strong> Discussion: strong> Cela signifie que la conversion ne s'arrête pas Les erreurs mineures et qu'il utilise une conversion de taux de bits audio 64K. P> à l'aide de l'option code> -Copy code> vous permet de remettre la vidéo d'entrée et est donc rapide. Sinon, FFMPEG transcodifie le fichier, qui prend considérablement plus longtemps. Ce script déterminera quelle option à utiliser. P>
Téléchargez le binaire FFMPEG et placez-le dans le répertoire / usr / local / bin code>.
Mon code est basé sur le blog de Jan sur Trick77.com. Voir "Références" pour plus de détails.
Téléchargez mon script Bash à partir de la section "Bash Script". P>
FFMPEG -I [Fichier] Code>.
Li>
Utilisation: strong> p>
Fichiers MP4 dans le MP4-YMMMDDD-HHMMSS EM> SubDirectory P>
Convert-flv-To-MP4.log.txt - Connexion du programme
ffmpeg-yyyyymmdd-hhmmss.log.txt - journal binaire FFMPEG pour chaque fichier converti de
ffmpeg.log.txt - compilation de toutes les journaux FFMPEG ci-dessus
MetaData.csv - Metadata pour chaque fichier vidéo P>
Dans ma première tentative, je n'ai pas pu convertir des vidéos avec le flux vidéo FLV1 à l'aide de l'option -Copy code> FFMPEG. Au lieu de cela, je devais utiliser les options FFMPEG suivantes: P>
-Strict expérimental -b -b: un 64k code> p>
ls ${inputdir}/*.flv>$inputlist
for i in $(cat $inputlist); do
...
case $vtype in
flv1)
ffmpeg -report -v info -nostdin -fflags discardcorrupt -i $i -strict experimental -c:v mpeg4 -b:a 64k ${outputdir}/${basename}.mp4
h264)
ffmpeg -report -v verbose -nostdin -fflags discardcorrupt -i $i -vcodec copy -acodec copy ${outputdir}/${basename}.mp4
esac
...
done
find . -iname "*.flv" -exec ffmpeg -nostdin -fflags discardcorrupt -i "{}" -strict experimental -c:v mpeg4 -b:a 192k "{}.mp4" \;
Bonjour, voici quelques directives pour votre réponse: il est non recommandé b> pour poster des réponses uniquement du code, envisagez également de fournir une explication de votre code et de la manière dont il résout le problème de la question. Les réponses avec une explication sont généralement plus utiles et de meilleure qualité, et sont plus susceptibles d'attirer des upvotes.