Pages : 1
#1 Le 23/12/2007, à 00:03
- brizou
Encoder des vidéos en masse
Quelqu'un aurait-il une solution pour encoder plusieurs vidéos qui se trouvent dans un même dossier avec mencoder .
les paramêtres serait les suivants
-oac copy -ovc xvid -xvidencopts bitrate=900
je voudrais lancer le script et qu'il me "retaille" toutes les vidéos .
Pensez vous que cela soit possible ?
Hors ligne
#2 Le 23/12/2007, à 00:07
- WW
Re : Encoder des vidéos en masse
Salut,
Oui je pense que c'est possible.
Tu dois pouvoir adapter ce script, il est fait pour "retailler" des images dans un même dossier :
if [ $# != 1 ]; then
echo "Usage : grubdossier <chemin du dossier contenant les images à traiter>"
exit 0;
fi
cd $1 #On entre dans le dossier des images à traiter
for i in *.jpg *.png # Pour les images aux différents formats
do
convert -resize 640x480! -colors 14 "$i" $HOME/"$i".xpm # On converti l'image en 640*480, 14 couleurs, .xpm
gzip $HOME/"$i".xpm # On zip la nouvelle image
sudo mv $HOME/"$i".xpm.gz /boot/grub/splashimages # On place la nouvelle image dans splashimages
done
Quand on sait c'est facile, mais qui n'a jamais été débutant.
Hors ligne
#3 Le 23/12/2007, à 00:11
- brizou
Re : Encoder des vidéos en masse
Merci je vais regarder ça de plus prêt
Hors ligne
#4 Le 23/12/2007, à 00:25
- safinaz
Re : Encoder des vidéos en masse
Quelqu'un aurait-il une solution pour encoder plusieurs vidéos qui se trouvent dans un même dossier avec mencoder .
les paramêtres serait les suivants-oac copy -ovc xvid -xvidencopts bitrate=900
je voudrais lancer le script et qu'il me "retaille" toutes les vidéos .
Pensez vous que cela soit possible ?
Tu te places dans le dossier des vidéos
mkdir ~/sortie
for i in *.wmv *.WMV ; do mencoder -oac mp3lame -lameopts -ovc xvid -xvidencopts bitrate=900 -o ~/sortie/"${i%.*}.avi" "$i"; done
devrait te donner les vidéos wmv encodées en avi dans le dossier sortie
#5 Le 23/12/2007, à 00:30
- brizou
Re : Encoder des vidéos en masse
Merci safinaz ça à l'air de marché .
Maintenant j'essayeras peut être de préparer un petit truc avec zenity pour choisir le dossier etc...
Hors ligne
#6 Le 23/12/2007, à 04:18
- sined
Re : Encoder des vidéos en masse
Bonjour,
perso, j'utilise ce script que j'avais trouvé je sais plus trop o๠:
#!/bin/bash
# Author: TuTUX
# This script converts FLV/RM/MPEG/... to AVI/MP4 files.
# Dependency: ffmpeg, mencoder, gstreamer...
# ToDo: you tell me.
# Distributed under the terms of GNU GPL version 2 or later
#
# You need to be running Nautilus 1.0.3+ to use scripts.
#
newname="New file name"
title="video convert (flv/avi/mpeg/rm to avi/mpeg-4)"
titlewh="Resolution of input video"
Wide="wide"
High="height"
avi_codec="Choose output codec"
audio_codec="Choose output audio"
bit_rate="Choose the bitrate of video (700 if mp4)"
abit="mp3 bitrate"
audio="audio encode(MPEG-4 will stick to acc)"
wrong="wrong input, skipping"
warning="huh?"
wide=640
high=480
tmp=0
tmp1=0
tmp2=0
bar1=0
bar=0
bar2=0
consw="640"
#encoding functions
iftowide()
{
ffmpeg -i "$1" -target ntsc-dvd -padtop "$((bar1))" -padbottom "$((bar2))" -s "$wide"x"$high" -aspect 4:3 -b 1152 -padcolor 000000 -acodec copy "`basename "$1"`.mpg"
}
wh()
{
wide=`gdialog --title "$titlewh" --inputbox "$Wide" 200 100 2>&1`
high=`gdialog --title "$titlewh" --inputbox "$High" 200 100 2>&1`
tmp=wide/4
tmp1=tmp*3
tmp2=tmp1-high
if [ $((tmp2%4)) -eq 0 ]; then
bar1=tmp2/2
bar2=bar1
else
bar=tmp2/2
bar1=bar+1
bar2=bar-1
fi
}
DivXmp3_encode()
{
mencoder "$1" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate="$get_bitrate":mbd=2:v4mv:autoaspect -vf pp=lb -oac mp3lame -lameopts cbr:br="$get_audio" -o "`basename "$1"`.avi" | zenity --progress --text="Encodage vidéo en cours" --pulsate --auto-close
}
DivXAC_encode()
{
mencoder "$1" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate="$get_bitrate":mbd=2:v4mv:autoaspect -vf pp=lb -channels 6 -oac lavc -lavcopts acodec=ac3:abitrate=384 -o "`basename "$1"`.avi" | zenity --progress --text="Encodage vidéo en cours" --pulsate --auto-close
}
XviDmp3_encode()
{
mencoder "$1" -ovc xvid -xvidencopts bitrate="$get_bitrate":autoaspect -vf pp=lb -oac mp3lame -lameopts cbr:br="$get_audio" -o "`basename "$1"`.avi" | zenity --progress --text="Encodage vidéo en cours" --pulsate --auto-close
}
XviDAC_encode()
{
mencoder "$1" -ovc xvid -xvidencopts bitrate="$get_bitrate":autoaspect -vf pp=lb -channels 6 -oac lavc -lavcopts acodec=ac3:abitrate=384 -o "`basename "$1"`.avi" | zenity --progress --text="Encodage vidéo en cours" --pulsate --auto-close
}
MP4_encode()
{
ffmpeg -i "$1" -f mp4 -vcodec mpeg4 -maxrate 1000 -b 700 -qmin 3 -qmax 5 -bufsize 4096 -g 300 -acodec aac -ab 160 -ar 48000 -s 640x480 -aspect 4:3 "`basename "$1"`.mp4" | zenity --progress --text="Encodage vidéo en cours" --pulsate --auto-close
}
MP4()
{
if file "$1" | grep -q "Macromedia Flash Video"; then
get_audio="64"
DivXmp3_encode "$1"
MP4_encode "$1.avi"
rm -f "$1.avi"
elif file "$1" | grep -q "RealMedia file"; then
get_audio="128"
DivXmp3_encode "$1"
MP4_encode "$1.avi"
rm -f "$1.avi"
else
MP4_encode "$1"
fi
}
MP4w()
{
if [ "$((wide))" -gt "$consw" ] ; then
if file "$1" | grep -q "RealMedia file"; then
get_audio="128"
DivXmp3_encode "$1"
iftowide "$1.avi"
rm -f "$1.avi"
MP4_encode "$1.avi.mpg"
rm -f "$1.avi.mpg"
else
iftowide "$1"
MP4_encode "$1.mpg"
rm -f "$1.mpg"
fi
else
if file "$1" | grep -q "Macromedia Flash Video"; then
get_audio="64"
DivXmp3_encode "$1"
MP4W_encode "$1.avi"
rm -f "$1.avi"
elif file "$1" | grep -q "RealMedia file"; then
get_audio="128"
DivXmp3_encode "$1"
MP4W_encode "$1.avi"
rm -f "$1.avi"
else
MP4W_encode "$1"
fi
fi
}
MP4W_encode()
{
ffmpeg -i "$1" -f mp4 -vcodec mpeg4 -maxrate 1000 -b 700 -qmin 3 -qmax 5 -bufsize 4096 -g 300 -acodec aac -ab 160 -ar 48000 -padtop "$((bar1))" -padbottom "$((bar2))" -s "$wide"x"$high" -aspect 4:3 -padcolor 000000 "`basename "$1"`.mp4"
}
#General
get_codec=`zenity --title="$title" --list --radiolist --column="" --column="$avi_codec" FALSE "DivX" TRUE "XviD" FALSE "MPEG-4" FALSE "MPEG-4 from widescreen"`
get_bitrate=`zenity --title="$get_codec" --list --radiolist --column="" --column="$bit_rate" FALSE "2500" FALSE "1800" FALSE "1152" TRUE "700" FALSE "500" FALSE "200"`
#todo if mp4 widescreen or not
case "$get_codec" in
DivX)
get_acode=`zenity --title="$audio" --list --radiolist --column="" --column="$audio_codec" FALSE "AC3 5.1" TRUE "mp3lame" `
case "$get_acode" in
mp3lame)
get_audio=`zenity --title="$audio" --list --radiolist --column="" --column="$abit" FALSE "320" FALSE "192" FALSE "160" TRUE "128" FALSE "64" `
;;
esac
;;
XviD)
get_acode=`zenity --title="$audio" --list --radiolist --column="" --column="$audio_codec" FALSE "AC3 5.1" TRUE "mp3lame" `
case "$get_acode" in
mp3lame)
get_audio=`zenity --title="$audio" --list --radiolist --column="" --column="$abit" FALSE "320" FALSE "192" FALSE "160" TRUE "128" FALSE "96" FALSE "64" `
;;
esac
;;
"MPEG-4 from widescreen")
wide=`gdialog --title "$titlewh" --inputbox "$Wide" 200 100 2>&1`
high=`gdialog --title "$titlewh" --inputbox "$High" 200 100 2>&1`
tmp=wide/4
tmp1=tmp*3
tmp2=tmp1-high
if [ $((tmp2%4)) -eq 0 ]; then
bar1=tmp2/2
bar2=bar1
else
bar=tmp2/2
bar1=bar+1
bar2=bar-1
fi
#gdialog --title "$((bar1))" --inputbox "$((bar2))" 200 100 2>&1
;;
esac
#General
while [ "$1" ]; do
case "$get_codec" in
MPEG-4)
MP4 "$1"
;;
"MPEG-4 from widescreen")
MP4w "$1"
;;
DivX)
case "$get_acode" in
mp3lame)
DivXmp3_encode "$1"
;;
"AC3 5.1")
DivXAC_encode "$1"
;;
esac
;;
XviD)
case "$get_acode" in
mp3lame)
XviDmp3_encode "$1"
;;
"AC3 5.1")
XviDAC_encode "$1"
;;
esac
;;
esac
shift
done
Il suffit de sélectionner toutes les videos à encoder, et elles sont traitées les unes après les autres.
Hors ligne
#7 Le 23/12/2007, à 11:29
- brizou
Re : Encoder des vidéos en masse
Sined c'est normal que je trouve le script que tu m'as donné lent, ça fait pratiquement une heure qu'il tourne là où je met normalement 20min ?
Hors ligne
#8 Le 23/12/2007, à 22:24
- sined
Re : Encoder des vidéos en masse
Je ne sais pas, cela dépend de la durée (et du nombre) des vidéos à encoder, ainsi que les paramètres que tu as choisi.
Chez moi, tout se déroule assez rapidement.
Hors ligne
#9 Le 23/12/2007, à 22:37
- safinaz
Re : Encoder des vidéos en masse
as tu eu des problèmes avec ce que j'ai donné,
et
il convertit quoi en quoi le script donné?
#10 Le 23/12/2007, à 23:06
- brizou
Re : Encoder des vidéos en masse
Le script que tu m'as donné est celui que j'utilise il convertit des xvid en xvid mais à un bitrate moins élevé pour un gain de place... Il fonctionne super bien je l'ai juste un peut modifié
Hors ligne
Pages : 1