Jaimerais utiliser le nouveau codec x265 (libx265) pour encoder ma collection de vidéos.

Pour cela jai créé un joli script bash sous linux qui fonctionne en général très bien! Mais quelque chose est étrange:

Jinterdis que la sortie de ffmpeg se répercute à ma manière. Avec x264 (le « vieux » ) tout fonctionne bien. Mais dès que jutilise x265, jobtiens toujours ce type de sortie sur mon terminal:

x265 [info]: HEVC encoder version 1.7 x265 [info]: build info [Linux][GCC 5.1.0][64 bit] 8bpp x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64 x265 [info]: Main profile, Level-2.1 (Main tier) x265 [info]: Thread pool created using 2 threads x265 [info]: frame threads / pool features : 1 / wpp(5 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 : 25 / 250 / 40 x265 [info]: Lookahead / bframes / badapt : 20 / 4 / 2 x265 [info]: b-pyramid / weightp / weightb / refs: 1 / 1 / 0 / 3 x265 [info]: AQ: mode / str / qg-size / cu-tree : 1 / 1.0 / 64 / 1 x265 [info]: Rate Control / qCompress : CRF-28.0 / 0.60 x265 [info]: tools: rd=3 psy-rd=0.30 signhide tmvp strong-intra-smoothing x265 [info]: tools: deblock sao 

Cest ainsi que jencode ma vidéo avec ffmpeg:

ffmpeg -i /input/file -c:v libx265 -c:a copy -loglevel quiet /output/file.mp4 <>/dev/null 2>&1 

Je pensais que le

<>/dev/null 2>&1 

et le

-loglevel quiet 

le fera mais apparemment je me trompe.

Comment puis-je résoudre ce problème?

Merci pour votre aide!

Réponse

Il semble que ffmpeg ne « t dit pas à lencodeur x265 dutiliser le niveau de journalisation que vous » dites à ffmpeg utilisation. Donc, si vous voulez que ffmpeg et lencodeur x265 dans ffmpeg soient silencieux, vous devez définir des options de niveau de journal pour les deux.

Si vous avez une commande ffmpeg qui ressemble à ceci:

ffmpeg -loglevel error -stats -i "inputfile.xyz" -c:v libx265 -x265-params parameter1=value:parameter2=value outputfile.xyz 

Vous pouvez ajouter loption log-level = error à la liste des paramètres x265 comme ceci:

ffmpeg -loglevel error -stats -i "inputfile.xyz" -c:v libx265 -x265-params log-level=error:parameter1=value:parameter2=value .... 

Commentaires

  • Merci pour votre réponse. Cest la solution que jai recherchée! Même si ma réponse arrive un peu trop tard, je suppose ^^
  • Ma préférence personnelle est de voir les progrès et les erreurs importantes sil y en a. De plus, comme jexporte ' vers x265, jai besoin de ce drapeau supplémentaire. Personnellement, je considère cela comme un bogue, et le niveau de journalisation devrait concerner tout, mais ' est vraiment agréable à savoir pour le supprimer efficacement et correctement. Merci!

La réponse

<>/dev/null connectera uniquement lentrée standard et la sortie vers /dev/null, et 2>&1 est appliquée après <>/dev/null, en fait, ne rien faire.

Le changer en >/dev/null 2>&1 fera ce que vous voulez.

Commentaires

  • Merci! Cela résout le problème. Mais vous avez une erreur dans votre réponse: jai écrit 2>&1 et non 1>&2 mais de toute façon .. ça marche 🙂

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *