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?