Problèmes et questions concernant l'édition XFCE.
Répondre

TUTO | Action personnalisée de Thunar: convertir et alléger des fichiers vidéos en webm et en un simple clic droit

#1Messageil y a 6 ans

Hello les Manja!

Petit tuto minimaliste pour convertir presque n'importe quelle vidéo en webm qui est parfaitement adapté au HTML5 et hyper-léger.

La ligne de commande ci-dessous peut alléger un fichier.MOV 60 fois! Bon, ok, la qualité n'est pas géniale mais acceptable si vous ne l'affichez pas trop grand.. Mais attention, vous n'obtiendrez pas un tel exploit avec toutes les vidéos, hein!

Bien-entendu, plus on réduit, plus la qualité finale s'en ressent.
Pour réduire, il faut -semble-t-il- augmenter le nombre par exemple 600k à 800k ou + (ou ce que vous voulez) comme ci-dessus. En diminuant le nombre, on alourdit le fichier mais on augmente la qualité.

Je m'en sers tous les jours!

Capture:
Image

xfce-terminal -x ffmpeg -i %f -b:a 1500k -ab 128k video.webm
ou encore:
xfce-terminal -x ffmpeg -i %f -b:v 600k -maxrate 600k -b:a 128k video.webm

Créer une action personnalisée (ou "custom action"

1. Edition > Configurer les actions personnalisées
2. Cliquez sur le "+" pour ajouter une action
. Nom: le nom de votre action, par exemple VIDEO CONVERTER
. Commande: copiez-collez l'une des commandes ci-dessus en la modifiant éventuellement.
3. Onglet Conditions d'apparition: cochez "fichiers vidéos" (ne pas l'oublier, sinon ça ne fonctionnera pas) et décochez "fichiers texte"


Utilisation proprement-dite:

1. Dans Thunar, faites un clic droit sur un fichier vidéo que vous voulez convertir (mov, mp4 ou autre...), puis: convertir en WEBM... (ou le nom que vous lui avez donné)
2. Attendre un temps certain pour que la conversion se fasse (ça peut durer un bon bout de temps...).

Si vous utilisez Gnome-Terminal, demandez-lui dans les options (profil) de laisser la fenêtre ouverte à la fin de la commande... (ça permet de voir les éventuelles erreurs) et changez xfce-terminal par gnome-terminal dans la commande.

Enjoy!

Heu... s'il y a un expert en ffmpeg qui passe par là, qu'il ne se moque pas... En fait j'y connais rien. C'est juste du bricolage mais c'est bien utile pour les webmasters.

Exemple de vidéo: http://104.207.144.52/videobaie.webm
Dernière modification par Nettlebayil y a 6 ans, modifié au total 1 fois.

TUTO | Action personnalisée de Thunar: convertir et alléger des fichiers vidéos en webm et en un simple clic droit

#2Messageil y a 6 ans

Bonsoir,

D'après la doc de ffmpeg, tu peux ajouter le coefficient de qualité constante :

ffmpeg -i %f -c:v libvpx -crf 10 -b:v 1500k -c:a libvorbis %f.webm
le crf peut aller de 4 à 63, plus il est faible, meilleure est la qualité, et plus le fichier est gros.

TUTO | Action personnalisée de Thunar: convertir et alléger des fichiers vidéos en webm et en un simple clic droit

#3Messageil y a 6 ans

WOUAH... déjà une réponse... Bon, pour moi, ça fonctionne très bien comme ça mais je pense que ça va faire bien causer dans les chaumières manjariennes ... D'ailleurs, c'est un peu le but. N'est-il pas?
Oui, je sais, il y a d'autres options possibles (j'ai d'ailleurs simplifié mes lignes de commande). Et je suis très intéressé.
Pour crf, je vais essayer dès que possible

TUTO | Action personnalisée de Thunar: convertir et alléger des fichiers vidéos en webm et en un simple clic droit

#4Messageil y a 6 ans

Désolé,

ffmpeg -i %f -c:v libvpx -crf 10 -b:v 1500k -c:a libvorbis %f.webm
ne donne rien chez moi (je veux dire: ça ne fonctionne pas du tout). :desole:
Dernière modification par Nettlebayil y a 6 ans, modifié au total 1 fois.

TUTO | Action personnalisée de Thunar: convertir et alléger des fichiers vidéos en webm et en un simple clic droit

#5Messageil y a 6 ans

J'ai testé dans un terminal et ffmpeg s'est plaint que ce n'était pas le bon codec audio pour du webm (problème de doc).
Donc pas besoin de mettre de codec vidéo ou audio avec le webm, ils sont choisis par défaut.

Je viens de faire un essai, l'encodage avec libvpx est bien plus long qu'un encodage avec x265 qui est déjà très long, je ne voudrais pas encoder un Blu-Ray en webm. :sourire:

Avec une vidéo HD de 56 Mo pour 3min 10, en webm avec -crf 20 -b:v 600k -b:a 128k, j'ai un fichier de 17,5 Mo.
En x265 avec les options -c:v libx265 -crf 25 -b:v 600k -c:a libvorbis -b:a 128k, j'ai un fichier de 18,7 Mo, mais l'encodage s'est fait trois fois plus vite, et la qualité d'image est un poil meilleure.

TUTO | Action personnalisée de Thunar: convertir et alléger des fichiers vidéos en webm et en un simple clic droit

#6Messageil y a 6 ans

Très intéressant... Je vais faire l'essai plus tard aujourd'hui. Merci!
OK, pour le BlueRay, je ne m'y vois pas! Mais bon, c'est pas le but recherché...
x265 est une bibliothèque logicielle libre sous licence GPLv2 de compression et décompression du standard de codec vidéo H.265/HEVC commencée en mars 2013.
Elle est programmée en C++ avec des optimisations en assembleur, elle réutilise les fonctions de contrôle de débit, de prédiction de macroblock tree, b-pyramide et de quantification adaptative de x264.
x265 a été jugé meilleur encodeur HEVC global par la section vidéo de l'université d'État de Moscou3.
Il comprend des optimisations pour les SIMD SSE34
(Wikipedia)

TUTO | Action personnalisée de Thunar: convertir et alléger des fichiers vidéos en webm et en un simple clic droit

#7Messageil y a 6 ans

Smurf a écrit : il y a 6 ans En x265 avec les options -c:v libx265 -crf 25 -b:v 600k -c:a libvorbis -b:a 128k, j'ai un fichier de 18,7 Mo, mais l'encodage s'est fait trois fois plus vite, et la qualité d'image est un poil meilleure.
Ah là, ça m'intéresse! Mais comment l'adapter à une "action personnalisée" dans Thunar? Jusqu'à présent, mes rares essais n'ont rien donné. Un petit coup de pouce? Et comment lancer ça en simple commande dans un terminal? Je suis très newbie dans ce domaine, faut dire... Mais bon, je continue à tâtons mes essais...

Pour ne pas multiplier le nombre de posts, je vous tiendrez au courant de mes essais ici...

9:30 (heure des Antilles):

gnome-terminal -x ffmpeg -i %f -c:v libx265 -crf 28 -b:v 600k -c:a libvorbis -b:a 128k video.mp4

Ça fonctionne, mais si je remplace mp4 par webm, j'ai un message d'erreur concernant les subtitles (sous-titres qu'il n'y a d'ailleurs pas dans ma vidéo).
Précision: le mp4 obtenu "pèse" 2,1 Mo contre 1,6 Mo (le MOV d'origine pèse 43 Mo)

Pour info: la vidéo en question en webm convertie depuis le fichier MOV d'origine avec mon action perso dans Thunar.
http://104.207.144.52/videobaie.webm

9:58
Voilà les erreurs rencontrées en demandant un fichier video.webm (désolé, c'est long!)

ffmpeg version 3.4.2 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 7.3.0 (GCC)
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-shared --enable-version3 --enable-omx
  libavutil      55. 78.100 / 55. 78.100
  libavcodec     57.107.100 / 57.107.100
  libavformat    57. 83.100 / 57. 83.100
  libavdevice    57. 10.100 / 57. 10.100
  libavfilter     6.107.100 /  6.107.100
  libavresample   3.  7.  0 /  3.  7.  0
  libswscale      4.  8.100 /  4.  8.100
  libswresample   2.  9.100 /  2.  9.100
  libpostproc    54.  7.100 / 54.  7.100
Guessed Channel Layout for Input Stream #0.1 : stereo
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/user/VIDEO/DSCN0129.MOV':
  Metadata:
    major_brand     : qt  
    minor_version   : 537331968
    compatible_brands: qt  niko
    creation_time   : 2018-03-10T08:24:11.000000Z
  Duration: 00:00:17.02, start: 0.000000, bitrate: 20163 kb/s
    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt709), 1920x1080, 18549 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 60k tbc (default)
    Metadata:
      creation_time   : 2018-03-10T08:24:11.000000Z
    Stream #0:1(eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, stereo, s16, 1536 kb/s (default)
    Metadata:
      creation_time   : 2018-03-10T08:24:11.000000Z
File 'video.webm' already exists. Overwrite ? [y/N] y
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> hevc (libx265))
  Stream #0:1 -> #0:1 (pcm_s16le (native) -> vorbis (libvorbis))
Press [q] to stop, [?] for help
[swscaler @ 0x5572f54388e0] deprecated pixel format used, make sure you did set range correctly
x265 [info]: HEVC encoder version 2.6
x265 [info]: build info [Linux][GCC 7.2.1][64 bit] 8bit+10bit+12bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
x265 [info]: Main profile, Level-4 (Main tier)
x265 [info]: Thread pool created using 2 threads
x265 [info]: Slices                              : 1
x265 [info]: frame threads / pool features       : 1 / wpp(17 rows)
x265 [info]: Coding QT: max CU size, min CU size : 64 / 8
x265 [info]: Residual QT: max TU size, max depth : 32 / 1 inter / 1 intra
x265 [info]: ME / range / subpel / merge         : hex / 57 / 2 / 2
x265 [info]: Keyframe min / max / scenecut / bias: 25 / 250 / 40 / 5.00
x265 [info]: Lookahead / bframes / badapt        : 20 / 4 / 2
x265 [info]: b-pyramid / weightp / weightb       : 1 / 1 / 0
x265 [info]: References / ref-limit  cu / depth  : 3 / on / on
x265 [info]: AQ: mode / str / qg-size / cu-tree  : 1 / 1.0 / 32 / 1
x265 [info]: Rate Control / qCompress            : CRF-28.0 / 0.60
x265 [info]: tools: rd=3 psy-rd=2.00 rskip signhide tmvp strong-intra-smoothing
x265 [info]: tools: lslices=6 deblock sao
Output #0, webm, to 'video.webm':
  Metadata:
    major_brand     : qt  
    minor_version   : 537331968
    compatible_brands: qt  niko
    encoder         : Lavf57.83.100
    Stream #0:0(eng): Video: hevc (libx265), yuv420p, 1920x1080, q=2-31, 600 kb/s, 29.97 fps, 1k tbn, 29.97 tbc (default)
    Metadata:
      creation_time   : 2018-03-10T08:24:11.000000Z
      encoder         : Lavc57.107.100 libx265
    Stream #0:1(eng): Audio: vorbis (libvorbis), 48000 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      creation_time   : 2018-03-10T08:24:11.000000Z
      encoder         : Lavc57.107.100 libvorbis
frame=    9 fps=0.0 q=0.0 size=       0kB time=00:00:00.92 bitrate=   0.0kbits/sframe=   21 fps= 21 q=0.0 size=       0kB time=00:00:00.92 bitrate=   0.0kbits/s[webm @ 0x5572f50cf980] Only VP8 or VP9 video and Vorbis or Opus audio and WebVTT subtitles are supported for WebM.
av_interleaved_write_frame(): Invalid argument
frame=   28 fps=7.9 q=-0.0 size=       0kB time=00:00:00.92 bitrate=   3.1kbits/Error writing trailer of video.webm: Invalid argument
frame=   28 fps=0.9 q=-0.0 Lsize=       0kB time=00:00:00.99 bitrate=   2.9kbits/s speed=0.0334x    
video:45kB audio:14kB subtitle:0kB other streams:0kB global headers:6kB muxing overhead: unknown
x265 [info]: frame I:      1, Avg QP:27.12  kb/s: 10930.19
x265 [info]: frame P:      6, Avg QP:29.10  kb/s: 2656.94 
x265 [info]: frame B:     21, Avg QP:35.97  kb/s: 446.26  
x265 [info]: Weighted P-Frames: Y:0.0% UV:0.0%
x265 [info]: consecutive B-frames: 14.3% 0.0% 0.0% 42.9% 42.9% 

encoded 28 frames in 29.68s (0.94 fps), 1294.41 kb/s, Avg QP:34.18
Conversion failed!
10:45
Je me demande si je ne vais pas oublier le webm et revenir au mp4 car la différence sur de courtes vidéos n'est vraiment pas importante et de plus, certains de mes visiteurs (et voisins) ne peuvent pas voir les webm du fait qu'ils refusent de mettre-à-jour leur vieilles machines ou navigateurs pour d'obscures raisons.

11:54 MYSTÈRE!
Je crois bien que je vais revenir au webm finalement... Si mes fichiers.mp4 fonctionnent bien en local, sitôt qu'ils sont en ligne, c'est "écran noir". Donc, je reviens au webm et à ma "formule magique" jusqu'à nouvel avis.

12:25 WINFF (ou Ffmpeg-Gui)
Je viens de (re-)découvrir cette intéressante application. Tout est mâché et je vais voir s'il n'y a pas moyen de récupérer la ligne de commande pour ensuite l'utiliser dans les "actions personnalisées" de Thunar.

13:46 EURÊKA!
Je crois avoir trouvé. Dans les fichiers cachés, on trouve un dossier ".winff". À l'intérieur, un fichier "presets.xml". Il suffit de rechercher la ligne de commande qui va bien. Recherchez <category>MPEG-4</category> (attention, il y en a pour tous les goûts!) et cherchez votre bonheur...
Pour le mp4 (ligne de commande Winff):

<params>-crf 20.0 -vcodec libx264 -vf scale=1280:720 -preset slow -acodec aac -ar 48000 -b:a 128k -coder 1 -flags +loop -cmp chroma -partitions +parti4x4+partp8x8+partb8x8 -me_method hex -subq 6 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -b_strategy 1 -threads 0</params>

Puis de la modifier et l'adapter aux "actions personnalisées" de Thunar. Ci-dessous, je l'ai juste adapté pour ça (pour tests) mais je n'ai pas encore modifié les options vidéo (mais ça va venir...).
Ci-dessous: le code adapté:

gnome-terminal -x ffmpeg -i %f -crf 20.0 -vcodec libx264 -vf scale=1280:720 -preset slow -acodec aac -ar 48000 -b:a 128k -coder 1 -flags +loop -cmp chroma -partitions +parti4x4+partp8x8+partb8x8 -me_method hex -subq 6 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -b_strategy 1 -threads 0 video.mp4

14:22
OK! Ça fonctionne parfaitement mais ça m'a donné un mp4 de 7 Mo (fichier MOV d'origine: 43 Mo). Evidemment, la qualité est très bonne mais voilà, c'est un peu lourd. Va donc falloir modifier certains paramètres. Je vous tiens au courant! J'aimerais ne pas dépasser 2,5 Mo.

14:49 On allège... et l'encodage est bien plus rapide
3,5 Mo avec ça (c'est encourageant):

gnome-terminal -x ffmpeg -i %f -f mp4 -r 23.976 -vcodec libx264 -preset slow -vf scale=1280:720 -b:v 1500k -aspect 16:9 -flags +loop -cmp chroma -maxrate 2000k -bufsize 4M -bt 256k -refs 1 -bf 3 -coder 1 -me_method umh -me_range 16 -subq 7 -partitions +parti4x4+parti8x8+partp8x8+partb8x8 -g 250 -keyint_min 25 -level 30 -qmin 10 -qmax 51 -qcomp 0.6 -trellis 2 -sc_threshold 40 -i_qfactor 0.71 -acodec aac -b:a 384k -ar 16000 -ac 2 video.mp4

À votre avis, que pourrais-je élaguer pour alléger encore plus?

TUTO | Action personnalisée de Thunar: convertir et alléger des fichiers vidéos en webm et en un simple clic droit

#8Messageil y a 6 ans

J'ai réussi à diminuer considérablement mes fichiers mp4 tout en gardant une qualité Web acceptable. Exemple très probant ce matin (allégée x50 fois!):
Image

Pour rappel, je n'utilise plus le webm actuellement car plusieurs de mes visiteurs (que je connais bien - "en chair et en os" - car ce sont des voisins ou amis) n'arrivent pas à ouvrir ces vidéos. Je me suis déjà expliqué là-dessus, ces personnes étant souvent assez âgées (comme moi) ou tout simplement peu à l'aise en informatique ne font de mises-à-jour depuis des années! (ou n'en ont jamais fait! Je ne préfère pas y penser!) et leur navigateur (IE en général) ne peut donc voir ces vidéos. Enfin, c'est mon diagnostic.

La commande pour les "custom actions" de Thunar:

gnome-terminal -x ffmpeg -i %f -f mp4 -r 24 -vcodec libx264 -preset slow -vf scale=800:450 -b:v 256k -aspect 16:9 -flags +loop -cmp chroma -maxrate 300k -bufsize 4M -bt 256k -refs 1 -bf 3 -coder 1 -me_method umh -me_range 16 -subq 7 -partitions +parti4x4+parti8x8+partp8x8+partb8x8 -g 250 -keyint_min 25 -level 30 -qmin 10 -qmax 51 -qcomp 0.6 -trellis 2 -sc_threshold 40 -i_qfactor 0.71 -acodec aac -b:a 128k -ar 16000 -ac 2 videobaie.mp4

Maintenant, reste à alléger cette interminable commande (tout n'est certainement pas utile) mais ce n'est vraiment pas urgent et seulement cosmétique. Pour info, je l'ai récupérée dans Winff. C'est bien pratique! À noter que le preset slow n'a pas changé grand-chose en terme de rapidité. Cette commande est d'origine très rapide.

Ci-dessous, la vidéo obtenue (elle change chaque matin plus ou moins vers 8 h soit 13 h heure française et 14 h en été. Il n'y a pas de changement d'heure été/hiver en général dans les pays tropicaux car la différence de durée du jour est trop faible pour que ça vaille le coup mais peut exister dans les pays sub-tropicaux comme Cuba, les Bahamas, la Floride et bien d'autres)
http://104.207.144.52/videobaie.mp4

N'hésitez pas à commenter et critiquer!

TUTO | Action personnalisée de Thunar: convertir et alléger des fichiers vidéos en webm et en un simple clic droit

#9Messageil y a 6 ans

Tu pourrais gagner en taille avec le codec x265, mais il est moins répandu que le x264 et moins accessible sauf si on installe de quoi le décoder.

Le preset slow est un ensemble de paramètres déjà préparés, les paramètres ajoutés modifient sans doute une partie d'entre eux, c'est pourquoi tu ne vois pas trop de différences.

TUTO | Action personnalisée de Thunar: convertir et alléger des fichiers vidéos en webm et en un simple clic droit

#10Messageil y a 6 ans

OK, merci Smurf, je m'en doutais un peu. Il faut dire que FFmpeg est bien mystérieux parfois!
Pour le x264, c'est une erreur, je vais modifier ça tout de suite.
En tous cas, j'ai des vidéos très légères et c'est tout ce que voulais.
Bonne soirée!
Répondre