je modifie le script pour le .mp4 car avec mkvmerge ça ne fonctionne pas il n'affiche aucune vidéo que du son je test ça avec avidemux
edit : voici le script modifié pour que le mp4 sois convertit avec avidemux (ne pas oublier de l'installer)
#!/bin/bash
## Variables de configurations
# Éditez les variables pour modifier la configuration.
#Qualité vorbis (entre -1 et 10)
vorbis_q=4
# Liste les ficiers de facon recurvise dans un fichier temporaire
find "${PWD}" -type f > /tmp/test
# CHangement de l'IFS pour la bouicle for
old_IFS=${IFS} IFS=$'\n'
# Boucle for traitant la liste du fichier temporaire
for file in $(cat /tmp/test)
do
# Reinitialisation des variables
unset conteneur filewav fileogg fileavi filemkv filenosoundmkv
# Détection du type de conteneur
case "$(file -b -L "${file}")" in
*"MPEG sequence"*) conteneur=MPEG ;;
*"AVI"*) conteneur=AVI ;;
*"MPEG v4 system"*) conteneur=MP4 ;;
*"Matroska data"*) conteneur=MKV ;;
*"Macromedia Flash Video"*) conteneur=FLV ;;
*"OGM video"*) conteneur=OGM ;;
*"Theora "*) conteneur="Ogg/Theora" ;;
*"ASF"*) conteneur=WMV ;;
esac
# Creation des differentes variables
filemkv="${file%.*}.mkv"
filenosoundmkv="${file%.*}[no_sound].mkv"
filewav="${file%.*}.wav"
fileogg="${file%.*}.ogg"
fileavi="${file%.*}.avi"
[[ "${file}" == "${fileavi}" ]] && fileavi="${file/%.avi/_new.avi}"
[[ "${file}" == "${filemkv}" ]] && filemkv="${file/%.mkv/_new.mkv}"
# Traitmeent des conteneurs MPEG|MP4|OGM|Ogg/Theora
if [[ ${conteneur} =~ MPEG|MP4|OGM|"Ogg/Theora" ]]
then
avidemux --nogui --load "$file" --run .convmp4 --save "$filemkv" --quit
# Menage dans les fichiers
echo "Suppression des fichiers temporaires"
[[ -e "${fileavi}" ]] && rm "${fileavi}"
[[ -e "${fileogg}" ]] && rm "${fileogg}"
[[ -e "${filewav}" ]] && rm "${filewav}"
[[ -e "${filenosoundmkv}" ]] && rm "${filenosoundmkv}"
[[ -e "${file}" ]] && rm "${file}"
# Traitmeent des conteneurs WMV|FLV|AVI
elif [[ ${conteneur} =~ WMV|FLV|AVI ]]
then
echo "Convertion du fichier ${file}"
# Encodage video avec vérification de la sortie
ffmpeg -y -i "${file}" -an -vcodec copy "${fileavi}"
[[ ${?} -eq "0" ]] || { echo "le fichier ${file} à rencontré une erreur avec mencoder, fichier suivant..."; continue; }
# Encodage audio via ffmpeg et lancement de oggenc si ffmpeg s'est bien terminé
ffmpeg -y -i "${file}" -vn -acodec pcm_s16le "${filewav}" && oggenc "${filewav}" -q${vorbis_q} -o "${fileogg}"
# Encapsulage avec ou sans son en fonction du retour de ffmpeg
[[ ${?} -eq "0" ]] && mkvmerge "${fileavi}" "${fileogg}" -o "${filemkv}" || mkvmerge "${fileavi}" -o "${filenosoundmkv}"
# Menage dans les fichiers
echo "Suppression des fichiers temporaires"
[[ -e "${fileavi}" ]] && rm "${fileavi}"
[[ -e "${fileogg}" ]] && rm "${fileogg}"
[[ -e "${filewav}" ]] && rm "${filewav}"
[[ -e "${filenosoundmkv}" ]] && rm "${filenosoundmkv}"
[[ -e "${file}" ]] && rm "${file}"
# Dans les autres cas...
else
echo "Le fichier ${file} n'est pas pris en charge, fichier suivant..."
continue
fi
done
# Retour de l'IFS
IFS=${old_IFS}
# Suppression du fichier temporaire
rm /tmp/test
et le fichier .convmp4 à placer au même endroit que le script
//AD <- Needed to identify//
//--automatically built--
//--Project: /home/cath/Bureau/mp4.edl
var app = new Avidemux();
//01 segments
app.clearSegments();
app.addSegment(0,0,35114);
app.markerA=0;
app.markerB=35113;
//** Postproc **
app.video.setPostProc(3,3,0);
app.video.fps1000 = 23976;
//** Filters **
//** Video Codec conf **
app.video.codec("Copy", "CQ=-785168832", "0 ");
//** Audio **
app.audio.reset();
app.audio.codec("Vorbis",128,12,"80 00 00 00 01 00 00 00 00 00 10 41 ");
app.audio.normalizeMode=0;
app.audio.normalizeValue=0;
app.audio.delay=0;
app.audio.mixer="NONE";
app.setContainer("MATROSKA");
setSuccess(1);
//app.Exit();
//End of script
à noter que même avec l'option --nogui avidemux en ouvre quand même un ... ce qui n'est pas trop dérangeant en sois j'essaie de trouver une solution si il y en à une