(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/en/live-tv/ina-70-fr 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
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
- https://pluto.tv/en/live-tv/ina-70-fr
- https://www.ina.fr/actualites-ina/fast-tv-samsung-70-pluto
- https://stackoverflow.com/questions/37088517/remove-sequentially-duplicate-frames-when-using-ffmpeg
- https://www.journaldulapin.com/2020/05/25/pal-speed-up-harry/
- https://en.wikipedia.org/wiki/Free_ad-supported_streaming_television
- https://en.wikipedia.org/wiki/Three-two_pull_down
- https://en.wikipedia.org/wiki/576i#PAL_speed-up
- https://www.youtube.com/watch?v=CuEZIJDEQyo