Y a-t-il seulement quelques fréquences d'images vidéo standard?

11

Dans la vidéo numérique moderne, un fichier vidéo peut-il être marqué avec une fréquence d'images arbitraire? Ou seulement quelques fréquences d'images spécifiques sont-elles largement prises en charge? Par «moderne», je veux dire des joueurs comme Quicktime, VLC, Roku, des consoles de jeu, etc.

Je comprends que 24 ips, 25 ips, 30 ips, 50 ips et 60 ips sont des normes largement prises en charge. HandBrake propose également 5, 10 et 15; sont ces options standard? Puis-je utiliser le numéro FPS que je veux? Et qu'en est-il des taux non entiers comme 23,976 et 29,97; sont-ils réellement traités différemment par logiciel que 24 et 30? Je vois également des références à la "fréquence d'images variable" dans les flux H.264; cela fonctionne-t-il réellement et si oui, à quoi cela sert-il?

Ma question spécifique est de savoir quel est le meilleur moyen d'encoder des numérisations de film 8 mm. La source est de 16 ips, la norme de film 8 mm. En ce moment, je double toutes les autres images pour l'amener à 24 images par seconde, ce qui fonctionne bien, mais je me demande pourquoi je ne peux pas simplement marquer la vidéo comme 16 images par seconde. FWIW J'ai produit des fichiers H.264 mp4 avec Handbrake à 15 ips et j'ai constaté qu'ils n'étaient lus correctement que dans VLC. Mac Quicktime les a joués trop vite, probablement 24 images par seconde.

Nelson
la source

Réponses:

11

Il existe plusieurs fréquences d'images «standard», mais il y en a tellement qu'il est plus facile de prendre en charge des fréquences d'images arbitraires que de prendre en charge de nombreuses fréquences spécifiques. Cela est particulièrement vrai pour les lecteurs de logiciels, comme VLC.

Il existe de plus en plus de support pour VARIABLE fps. (VFR, fréquence d'images variable). C'est là que l'intervalle entre les images d'une même vidéo n'est pas constant. De nombreux formats de fichiers de conteneurs vidéo (comme Matroska ( .mkv) ou MPEG-4 ( .mp4, étroitement liés à Apple .mov)) ne stockent même pas un numéro FPS, mais plutôt une base de temps (par exemple 1 / 30ème de seconde), puis chaque image a un horodatage comme multiple de cette base de temps. Il se trouve que l'intervalle entre chaque image est un ou un petit nombre entier d'unités de la base de temps dans une vidéo CFR (fréquence d'images constante).

Des séquences de caméras de sécurité avec des images presque dupliquées seraient un cas d'utilisation évident pour le VFR. Encore plus s'il est compressé avec un codec vidéo simpliste qui ne profite pas bien de la redondance temporelle (avec des trames inter (p et b)). (jouez avec ffmpeg -vf mpdecimatepour supprimer des images presque dupées. À utiliser -vsync 2si la sortie vers mp4, car pour une raison quelconque, ce n'est pas la valeur par défaut pour ce muxer, mais c'est pour mkv.)

Un autre cas est celui des smartphones modernes. Par exemple, le Moto G (2e génération) de mon frère enregistre des vidéos VFR. Il réduit la fréquence d'images lorsque le capteur a besoin de plus de lumière. Une partie de la sortie de l'exécution de mediainfo sur un mp4 créé par le logiciel du téléphone, enregistrée à l'intérieur:

Bit rate                                 : 9 999 Kbps
Width                                    : 1 280 pixels
Height                                   : 720 pixels
Display aspect ratio                     : 16:9
Rotation                                 : 90°
Frame rate mode                          : Variable
Frame rate                               : 16.587 fps
Minimum frame rate                       : 14.985 fps
Maximum frame rate                       : 30.030 fps

La lecture d'un seul flux vidéo VFR n'est pas difficile. Le logiciel prépare simplement la prochaine image à afficher, s'endort jusqu'à ce qu'elle soit affichée, puis se réveille et l'affiche.

Les choses deviennent un peu plus compliquées lorsque l'on tient compte du fait que les humains ne peuvent voir les images vidéo que lorsqu'un moniteur les affiche. Les moniteurs VFR existent, mais sont encore rares. (google pour g-sync freesync).

La modification de l'image affichée pendant sa numérisation sur le moniteur entraîne une déchirure moche de la vidéo (ce qui se produit généralement lorsque vous jouez à un jeu avec vsync désactivé). Cela limite le lecteur à changer l'image affichée à 50 ou 60 Hz. (Les CRT prennent en charge des taux de rafraîchissement arbitraires, dans une plage, mais il est compliqué de préparer des modes avec tous les temps corrects, de sorte que la plupart des gens n'utilisent que quelques taux de rafraîchissement fixes. Et maintenant, les gens ont des écrans LCD qui ne prennent en charge qu'un taux de rafraîchissement fixe de toute façon. Les moniteurs freesync sont de toute façon plus répandus. Je suis vraiment impatient de le faire. :)

Ainsi, avec des fréquences d'images vidéo qui ne sont pas un multiple ou un facteur du taux de rafraîchissement du moniteur, certaines images seront affichées pendant 3 rafraîchissements du moniteur, et d'autres pour 2, par exemple, même si la vidéo est censée être à une vitesse constante de 25 images par seconde. (sur un moniteur à 60 Hz).

Les choses deviennent plus compliquées lorsque vous souhaitez travailler avec plusieurs clips et effectuer un fondu entre eux, ou une image dans l'image, ou divers autres effets. C'est beaucoup plus facile d'écrire un logiciel de montage vidéo si vous pouvez supposer que tous les clips ont une nouvelle image en même temps. (Ils forcent l'alignement des clips à s'aligner sur des images entières).

C'est pourquoi les NLE (comme kdenlive ou pitivi, pour choisir des exemples de logiciels gratuits aléatoires), sont plus susceptibles de vous forcer à un FPS fixe et de supprimer / dupliquer des images de vos clips pour les faire correspondre à cette fréquence d'images. Le CFR que vous choisissez peut être arbitraire, mais il doit généralement être constant pour l'ensemble du "projet".

(Est-ce que des NLE fonctionnent entièrement avec des clips VFR et produisent une sortie VFR dans ce cas?)

Donc, en résumé, une fois que nous avons des moniteurs et des systèmes d'exploitation à synchronisation variable, la seule chose qui nous retient sera le montage vidéo, je suppose. Et la radiodiffusion, car apparemment CFR est aussi un gros problème pour cela?

Au cas où vous vous poseriez la question, les 29.970 (en fait 30000/1001) et 23.976 (en fait 24000/1001, de télécinéma) les taux de trame non entiers ennuyeux sont la faute de la couleur NTSC. recherchez 1.001 . Si seulement ils avaient été prêts à risquer que quelques postes N&B ne soient pas en mesure de gérer une fréquence supplémentaire de 0,1% pour la sous-porteuse audio, le monde aurait été épargné par ce non-sens. (Je pense avoir vu un autre article quelque part qui donnait l'impression que de nombreux ensembles auraient été bien, mais ils n'étaient pas sûrs d'une compatibilité parfaite. Wikipedia donne l'impression qu'aucun ensemble n'aurait géré une sous-porteuse audio 0,1% plus élevée. IDK le faits.)

Les taux de trame ennuyeux sont cependant l'un des moindres péchés de la radiodiffusion. C'est vraiment l'entrelacement qui a été le fléau de la qualité vidéo sur les écrans modernes (tous les pixels allumés en même temps), et cela n'aurait pas changé. Je ne comprends toujours pas pourquoi l'entrelacement a été conservé pour la TVHD. Pourquoi 1080i60 a-t-il été défini au lieu d'utiliser 720p60 pour obtenir la même résolution temporelle pour les sports et autres? C'est similaire à 1920x540p60, mais avec un décalage vertical stupide entre les champs pairs et impairs qui nécessite beaucoup de calculs du côté de la réception pour qu'il ne soit pas horrible.

Éditer:

Pour votre cas d'utilisation, je recommanderais absolument l'archivage au FPS natif. Ne jetez aucune information en supprimant des images. Ne dupez pas les images et agrandissez vos fichiers (ou faites en sorte que votre encodeur h.264 passe plus de temps à remarquer les doublons et à produire une image pleine de saut de macroblocs qui ne prend que 20 octets pour l'ensemble de l'image).

À l'avenir, lorsque nous espérons que tous auront des affichages freesync capables de lire n'importe quel taux d'images, vous voudrez annuler votre pullup à 24 images par seconde pour que votre vidéo soit plus fluide! Ou si le freesync ne fonctionne pas ou que l'affichage qui vient après les LCD est CFR, la conversion de taux est probablement préférable de toute façon au moment de la lecture. Ce n'est pas comme si 24 images par seconde se jouait parfaitement sur un moniteur à 60 Hz. (Je ne remarque pas visuellement le fait que certaines images sont affichées pour 3 * 1 / 60ème tandis que d'autres sont affichées pour 2 * 1 / 60ème, mais c'est vrai).

Si vous rencontrez des problèmes avec Quicktime, alors IDK. Assurez-vous que Handbrake crée des fichiers avec le bon nombre d'images par seconde dans le flux binaire h.264, ainsi que le conteneur. (Oui, les en-têtes h.264 peuvent apparemment stocker une fréquence d'images, distincte de ce que dit le conteneur. Consultez les documents pour mkvmerge --fix-bitstream-timing-information. Et essayez de l'utiliser avec --default-duration 16fpspour créer un fichier mkv. ) Ou peut-être qu'il existe un moyen de le faire avec les outils mp4 en premier lieu. Voir par exemple: /ubuntu/370692/how-to-change-the-framerate-of-a-video-without-reencoding

Je peux garantir que la fréquence d'images arbitraire mp4 est valide, et même la fréquence d'images variable mp4 est valide. Si Quicktime le joue mal, ce pourrait bien être la faute de Quicktime. Ou peut-être la faute de Handbrake pour avoir rendu le fichier incorrect. J'utilise généralement ffmpeg directement, car je suis un ninja en ligne de commande.

Peter Cordes
la source
2

Pour répondre à votre question - oui, vous pouvez généralement encoder un fichier vidéo dans n'importe quelle fréquence d'images que vous souhaitez. (Bien que certains logiciels puissent choisir de vous limiter pour simplifier le logiciel.) La question est de savoir si le format de livraison que vous choisissez le prend en charge et l'appareil de lecture le prend-il en charge?

Si vous avez un film 8 mm à 16 ips, je le coderais à 16 ips si je savais que les appareils de lecture que je voulais prendre en charge pouvaient le gérer. Sinon, j'utiliserais probablement un logiciel prenant en charge le flux optique (parfois appelé estimation de mouvement) pour l'encoder à 24 ips, ce qui est probablement la fréquence d'images la plus proche susceptible d'être prise en charge par les logiciels d'encodage, les logiciels de décodage et la plupart des matériels de lecture.

Un logiciel (ou matériel) qui prend en charge le flux optique générera des images intermédiaires basées sur le mouvement des objets dans votre vidéo. Plutôt que de répéter une image ou même de mélanger 2 images, il génère une nouvelle image qui est généralement assez proche de ce qui aurait été réellement enregistré si vous aviez enregistré à la fréquence d'images de sortie.

user1118321
la source
J'encode à la fréquence d'images native, pour éviter de jeter des informations ou de dupliquer une image pour créer un travail supplémentaire pour un codec. En outre, à l'avenir, nous espérons que tous auront des affichages freesync qui peuvent jouer n'importe quel taux de rafraîchissement. Si ce n'est pas le cas, la conversion de taux est probablement mieux effectuée au moment de la lecture, en particulier. si nous parlons de délais d'archivage.
Peter Cordes
2

Par histoire, 24 FPS proviennent de kino (films). Le film était en bande photo et la vitesse a été choisie pour rendre les mouvements fluides.

25 FPS proviennent de la fréquence du pouvoir en Europe, 50 Hz (50 FPS est de la même source, mais en fait le double). En fait, la télévision en Europe était de 50 FPS mais demi-images, elles sont entrelacées

30 FPS proviennent de la fréquence d'alimentation aux États-Unis, 60 Hz (60 FPS provient de la même source, mais en fait le double). En fait, la télévision aux États-Unis était de 60 images par seconde mais demi-images, elles sont entrelacées

16 FPS n'est pas aussi répandu que la norme à des fins professionnelles, c'est peut-être la raison pour laquelle il n'est pas utilisé dans la plupart des logiciels actuels. De plus, de tels FPS ne "lisseront" pas assez le mouvement rapide. J'ai une idée folle comment vous pouvez faire 16 FPS pour mieux correspondre à 24. Les Juts obtiennent toutes les images paires et impaires et font quelque chose de moyen entre elles :)

Roméo Ninov
la source
Merci pour l'aide mais cela ne répond pas à ma question. Je connais les origines des 24, 25, 50 et 60. Ce que je demande, c'est si d'autres fréquences d'images devraient fonctionner.
Nelson
1

Il existe des normes vidéo et télévisuelles fixes auxquelles la plupart des vidéos sont conformes. Un ordinateur peut souvent afficher de la vidéo à partir de plusieurs fréquences d'images, mais certains téléviseurs peuvent avoir des problèmes avec des fréquences d'images impaires car ils peuvent utiliser des circuits d'affichage plus spécialisés. Même sur un ordinateur, la fréquence d'images réellement affichée peut ne pas correspondre à celle du fichier vidéo, selon les taux de rafraîchissement pris en charge par le moniteur.

Oui, les fréquences d'images non entières s'affichent différemment. Ils sont connus sous le nom de drop frame et ils existent principalement pour des raisons héritées. Lors de la lecture, une image est supprimée (à partir du code temporel) de temps en temps afin de compenser le décalage horaire et les images sont réparties à la vitesse appropriée pour la garder lisse. Cela a plus à voir avec les choses de synchronisation dans les formats hérités et à éviter les problèmes de synchronisation qui ne sont plus pertinents.

Vous pouvez utiliser des fréquences d'images non standard et il devrait être lu correctement sur les PC, mais il ne sera pas conforme à la vidéo standard pour des choses comme Bluray et peut ne pas être lu correctement sur certains téléviseurs. (Et même sur ceux sur lesquels il travaille, il effectuera probablement un abaissement en temps réel pour se conformer à une fréquence d'images standard, alors qu'un pulldown effectué à l'avance entraînerait probablement une meilleure qualité.)

AJ Henderson
la source
@ user1118321 oui, et merci d'avoir souligné que cela pourrait être plus clair.
AJ Henderson
-1

Votre question ne porte pas sur les taux courants, mais sur le taux à utiliser pour numériser votre film. La réponse: vous devez utiliser le taux d'origine si possible, car vous souhaitez conserver la source sous forme numérique. Ensuite, vous pouvez le convertir à la fréquence d'images dont vous avez besoin pour la visualisation. Dans les temps anciens, cela signifiait généralement 24 images par seconde pour la présentation théâtrale et 29,97 images par seconde, entrelacé pour la vidéo. De nos jours, vous pouvez faire presque n'importe quoi, mais vous devez avoir une bonne source, qui correspond le plus proprement possible à l'original.

Noyau rouillé
la source
Non, ma question portait sur les taux communs. Et a été répondu de manière adéquate il y a des années.
Nelson
-3

Quelques autres notes. Tout d'abord, 48 images par seconde deviennent de plus en plus populaires et courantes grâce au Hobbit et maintenant à la prise en charge de YouTube pour le débit d'images. Deuxièmement, 30 images par seconde est généralement de 29,97 images par seconde et 60 est généralement d'environ 59,94.

KC McLaughlin
la source
2
En fait, 30 ne signifie pas toujours 29,97. Parfois, c'est vraiment 30. Il en va de même pour 24. 23,98, 24, 29,97, 30, 50, 59,94 et 60 sont tous des fréquences d'images parfaitement valides et couramment utilisées. Ceux qui contiennent des décimales sont censés être compatibles avec la télévision diffusée dans divers pays, mais ils sont également équitables sur les sites Web. Cependant, certains fabricants de caméras vidéo "mentent" à propos de leurs débits. Un appareil photo marqué 24p pourrait en fait fournir 23,98 dans le but d'épargner au consommateur à la fois les maux de tête liés aux problèmes de bande et les détails techniques qui se cachent derrière.
Jason Conrad
@JasonConrad Les fréquences d'images ne sont pas toujours des décimales arrondies, mais pour la plupart des appareils photo grand public, elles le sont.
KC McLaughlin
@KCMcLaughlin - en fait, il est de plus en plus probable sur les périphériques à balayage progressif de supprimer la trame de suppression et d'augmenter simplement les taux de trame entiers. 29.97 et 23.976 sont purement hérités à ce stade et ont été de plus en plus remplacés par des taux de trame entiers purs.
AJ Henderson
@KCMcLaughlin Color NTSC n'a jamais été à 29,97 ips. C'était et c'est toujours 30000/1001. De même, le contenu 24p téléciné sur NTSC couleur sera en fait 24000/1001. De plus, mon appareil photo numérique (lumix) enregistre 30 images par seconde, pas 30 / 1.001. A / V se désynchroniserait si je lisais un nombre différent d'images par 48kamples d'audio.
Peter Cordes