Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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

brizou a écrit :

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