(Re)Diffuser la télévision française à 30 images par secondes ?

L'INA a sorti dernièrement une chaine FAST: INA 70. Super projet qui nous ramène dans la télévision française des 70's. Je m'étonne cependant que le flux soit streamé à 30 fps pour un contenu qui provient principalement de sources historiquement diffusées et produites à 50 trames par seconde...

Captons 10 secondes du flux en question dans un fichier

1timeout 10 streamlink --quiet -o - https://pluto.tv/fr/live-tv/639b54404cfdf7000729b3c1 best > ina-70-fr.ts

Les 2 outils sont installables sous MacOS avec la commande homebrew suivante:

1brew install coreutils streamlink

On analyse le framerate et l'entrelacement avec mediainfo

1$ mediainfo --Output=JSON ina-70-fr.ts | jq '.media.track[]| select(."@type" == "Video") | .FrameRate'
2"30.000"
3$ mediainfo --Output=JSON ina-70-fr.ts | jq '.media.track[]| select(."@type" == "Video") | .ScanType'
4"Progressive"

Les 2 outils sont installables sous MacOS avec la commande suivante:

1brew install mediainfo jq

Comme je le craignais, il y a bien un défaut visible dans la vidéo. On a une source réelle qui doit être à 50 trames par seconde (entrelacé) et on a un système de diffusion qui tourne à 30fps (progressif). Il faudra dans tous les cas désentrelacer, puis plusieurs possibilités :

  • on accélère le tout, audio et vidéo pour passer de 25fps à 30fps. La vidéo sera plus courte, les voix plus aigües. Ne rigolez pas, c'est ce qu'il se passe quand des films de cinéma à 24fps sont diffusés à la TV à 25fps. Sauf que dans ce cas c'est moins perceptible. Cette technique s'appelle le "PAL Speed Up". Mauvaise idée dans notre cas.
  • on fait plus on moins des arrondis dans tous les sens à la sauce 3:2 pull down
  • on duplique cycliquement des images ! Une seconde reste une seconde et on doit l'alimenter avec 30 images. Prenons les 25 d'origine et dupliquons équitablement 5 images réparties dans la seconde. On parle aussi de motion judder.
1        A                 B                 C                 D                 E
2source: 01 02 03 04 05 05 06 07 08 09 10 10 11 12 13 14 15 15 16 17 18 19 20 20 21 22 23 24 25 25
3pluto:  01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

On se retrouve avec des groupes de 6 images dont la dernière est dupliquée...

Pour le mesurer, j'utilise mpv comme lecteur vidéo car il permet de faire de l'image par image (raccourcis . pour image suivante et , pour image précédente). On constate bien ce cycle de 6 images.

Ralentissons la vidéo d'un facteur 10 pour mieux se rendre compte de l'effet (= 3 images/sec).

1ffmpeg -i ina-70-fr.ts -filter:v "setpts=10.0*PTS" -s 640x360 -an -c:v libx264 -movflags +faststart -y slow-mo.mp4

Pour réparer et remettre à la bonne la cadence d'image (mais au prix d'un réencodage donc d'une dégradation de la qualité) :

1ffmpeg -r 25 -i ina-70-fr.ts -vf "select='mod(n+0,6)',setpts='N/25/TB'" -b:v 4000k -map 0 ina-70-fr-fixed.ts

Note: faire éventuellement varier le 0 de (n+0,6) entre 0 et 5 pour retirer la bonne image en doublon.

Pour faire le test complet de la génération d'une vidéo à 30 FPS à la conversion en 25 FPS (avec incrustation du timecode pour voir les frames supprimées)

1ffmpeg -f lavfi -i testsrc=size=640x360:rate=30 -vf "drawtext=text='':x=(w-tw)/2:y=h-(2*lh):fontsize=40:fontcolor=white:box=1:boxcolor=black:boxborderw=4:timecode='00\:00\:00\:00':timecode_rate=30,format=yuv420p" -t 10 -y test-30.mp4
2ffmpeg -i test-30.mp4 -vf "select='mod(n+0,6)',setpts='N/25/TB'" -b:v 4000k -r 25 test-25.mp4

vidéo de test

  • 00:00:00:00 (non présent dans test-25.mp4, multiple de 6)
  • 00:00:00:01
  • 00:00:00:02
  • 00:00:00:03
  • 00:00:00:04
  • 00:00:00:05
  • 00:00:00:06 (non présent dans test-25.mp4, multiple de 6)
  • 00:00:00:07
  • (...)

Conclusion

pluto.tv ne pourrait-il pas permettre une diffusion à 25 fps afin de respecter l'oeuvre d'origine et ainsi éviter ces saccades régulières ?

Excepté ce détail technique, allez quand même jeter un oeil sur cette nouvelle chaîne qui a le mérite de remettre en lumière les émissions de la télé française des années 70, avec leur heure de diffusion d'origine. Le voyage dans le temps existe ! 🚀📺😎

Ressources

comments powered by Disqus