Traitement vidéo avec Avisynth sous Linux

Visiteur
Visiteur
Supposons que vous ayez un fichier mpg ou VOB (film ou animé) dont la plupart des images sont progressives, mais qui contient quelques images interlaces. Vous souhaitez effectuer un Rip pour éliminer les images interlaces sans altérer les images progressives. Il s'agit d'un cas rare que l'on trouve principalement sur les vieux DVD. Avisynth frameserver et TDeint deinterlacer vous aideront dans cette tâche. Je vais vous expliquer comment les installer facilement dans Mageia.
Il est supposé que vous avez sudo installé et que le mot de passe est désactivé. C'est souhaitable pour que le script fonctionne correctement.
Code :
su -
urpmi nano sudo
nano /etc/sudoers
your_username ALL=(ALL:ALL) NOPASSWD: ALL
Ctrl+X
Y
Enter
exit
Sauvegardez le code ci-dessous dans le fichier avisynth.sh de votre dossier personnel.
Code :
sudo urpmi gcc gcc-c++ make lib64devil-devel cmake git wget curl pkgconf ninja yasm nasm ccache nano sudo ffmpeg mpv mediainfo
git clone -b v3.7.3 --depth=1 https://github.com/AviSynth/AviSynthPlus
cd AviSynthPlus
mkdir 1
cd 1
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local
make -j1
sudo make install
sudo ldconfig
cd $HOME
git clone --depth=1 https://github.com/pinterf/TIVTC
cd TIVTC/src
mkdir 1
cd 1
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local
make -j1
sudo make install
sudo ldconfig
cd $HOME
git clone --depth=1 https://github.com/Asd-g/MPEG2DecPlus
cd MPEG2DecPlus
mkdir 1
cd 1
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local
make -j1
sudo make install
sudo ldconfig
cd $HOME
git clone --depth=1 https://github.com/DJATOM/avs2yuv
cd avs2yuv
mkdir 1
cd 1
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig LDFLAGS='-Wl,-rpath,/usr/local/lib64' cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local
make -j1
sudo make install
Code :
chmod +x ./avisynth.sh
./avisynth.sh
Avisynth et les plugins nécessaires sont installés dans /usr/local. Il faut maintenant créer un projet .d2v puis un projet .avs. Pour créer le .d2v, utilisez mon build d2vwitch https://github.com/artenax/AviSynthPlus/releases/download/v3.7.3/d2vwitch.zip
Ouvrez le fichier mpg ou VOB et sauvegardez le 1.d2v dans votre dossier personnel. Vous pouvez également extraire l'audio à ce stade.
Créez 1.avs dans votre dossier personnel avec le contenu suivant :
Code :
D2VSource("1.d2v")
tdeint(order=1, full=false, slow=2, mthreshL=5, mthreshC=5, cthresh=7, MI=40)
Maintenant vous pouvez voir si mpv lira votre script :
Code :
avs2yuv -par 16:15 1.avs -o - | mpv -
16:15 signifie PAL 4:3. Pour PAL 16:9, ce serait 64:45.
Si le mpv est lu correctement, vous pouvez transcoder vers un autre format en utilisant ffmpeg, comme ceci :
Code :
avs2yuv -par 16:15 1.avs -o - | ffmpeg -i - -vcodec mpeg4 -q:v 2 -maxrate 15M -bf 2 -g 50 -vtag XVID -mpeg_quant 1 -y 1.avi
La vidéo ne contiendra pas de son, vous devrez l'ajouter vous-même.
Code :
ffmpeg -i 1.avi -i 1.ac3 -c copy 2.avi
Le plugin TIVTC contient également un décimateur TDecimate, qui supprimera les images dupliquées de la vidéo (si la vidéo en contient). J'en parlerai peut-être la prochaine fois.
Édité par Visiteur Le 03/10/2024 à 18h23

Visiteur
Visiteur
Heureusement, Mageia a vapoursynth, contrairement à Debian / Ubuntu.

Code :
sudo urpmi lib64qt5core-devel lib64qt5widgets-devel lib64qt5gui-devel meson ninja libtool lib64vapoursynth-devel lib64ffmpeg-devel
git clone https://github.com/dubhater/D2VWitch
cd D2VWitch
mkdir 1
cd 1
meson .. --prefix=/usr/local --libdir=lib64 -Dbuildtype=release -Ddefault_library=static -Dstrip=true
ninja -j1
sudo ninja install

Visiteur
Visiteur
Code :
sudo urpmi autoconf automake m4 libtool gettext patch lib64ffmpeg-devel lib64z-devel lib64z-static-devel
git clone https://github.com/FFMS/ffms2
cd ffms2
git checkout c03dc64dda93a92e8ddeff27e1e459e096bb62fb
CPPFLAGS="-I/usr/local/include/avisynth" PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig ./autogen.sh --prefix=/usr/local --libdir=/usr/local/lib64/avisynth --enable-avisynth --enable-shared --disable-static --with-pic --enable-silent-rules
make -j1
sudo cp src/core/.libs/libffms2.so.5.0.0 /usr/local/lib64/avisynth/libffms2.so
sudo strip --strip-unneeded /usr/local/lib64/avisynth/libffms2.so
1.avs :
Code :
ffms2("/media/shared/1.mpg")

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
artenaki :ffms2 input plugin pour la prise en charge d'autres formats.
Il semblerait que celui-ci est déjà disponible dans Mageia 9.
Code TEXT :
urpmq -i ffms2 Name : ffms2 Version : 3.0.1 Release : 0.0.git20211209.1.mga9 Group : System/Libraries Size : 26110 Architecture: x86_64 Source RPM : ffms2-3.0.1-0.0.git20211209.1.mga9.src.rpm URL : https://github.com/FFMS/ffms2/ Summary : Wrapper library around libffmpeg Description : FFmpegSource (usually known as FFMS or FFMS2) is a cross-platform wrapper library around libffmpeg, plus some additional components to deal with file formats libavformat has (or used to have) problems with.
Yves

Visiteur
Visiteur
Jybz : La création d'un spec/RPM est la bonne façon de procéder, mais je ne sais pas comment le faire, malheureusement.
Papoteur: ffms2 est en effet disponible dans de nombreuses distributions Linux, y compris Mageia, mais sans le support d'Avisynth malheureusement (pas d'option --enable-avisynth lors de la compilation). Les anciennes versions d'Ubuntu (comme la 16.04, que j'utilisais auparavant) supportaient Avisynth (lien symbolique nécessaire) à la fois dans ffms2 et ffmpeg, mais plus maintenant. Désormais, le plugin ffms2 des distributions Linux ne peut utiliser que des applications comme Aegisub (éditeur de sous-titres), mais pas Avisynth.
Pour que ffms2 prenne en charge Avisynth dans les distributions Linux, seuls les en-têtes Avisynth (non les librairies) sont nécessaires au moment de la compilation. Et l'option --enable-avisynth.
Si vous lancez
Code :
git clone -b v3.7.3 https://github.com/AviSynth/AviSynthPlus.git && cd AviSynthPlus && mkdir build-dir && cd build-dir && cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DHEADERS_ONLY=ON && make VersionGen install
sur le serveur de build (avant de compiler ffms2), ffms2 dans Mageia supportera Avisynth. Il n'y aura aucune dépendance de bibliothèque libavisynth.so.
La même chose s'applique à ffmpeg.
Édité par Visiteur Le 04/10/2024 à 15h06
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie