paramètre necessaire à dash

a marqué ce sujet comme résolu.
Auteur du sujet

Salut,

Je fais des petits testes avec dash (Dynamic Adaptative Streaming over Http), et j’ai un sérieux problème, j’y connais rien à l’encodage de video :p

Pour générer les fichiers nécessaires, je suis ce tuto, il y est dit :"If the source video is already in the correct format, this step can be skipped. However, the odds are long for this being the case."
Mais je suis pas sur de comprendre, il utilise cependant ce qui implique une opposition mais continue avec les chances que ce soit le cas sont grande. Ducoup, il y a de forte chance que je doivent re-encoder le fichier ou pas ?
Quand il dit format ça comprend quoi ? codec, container, bitrate. Mon fichier de départ est du mkv encodé en x264. Quelles sont les paramètres que je dois observer dans mon fichier initiale pour savoir si je peux sauter cette étape ?

Voici une sortie de mediainfo sur mon fichier:

General Format : Matroska
Format version : Version 4
File size : 2.82 GiB
Duration : 2 h 3 min
Overall bit rate : 3 269 kb/s
Encoded date : UTC 2019–06–02 12:36:01
Writing application : mkvmerge v34.0.0 (’Sight and Seen’) 64-bit
Writing library : libebml v1.3.7 + libmatroska v1.5.0

Video ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings : CABAC / 4 Ref Frames
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 2 h 3 min
Bit rate : 2 500 kb/s
Width : 1 920 pixels
Height : 808 pixels
Display aspect ratio : 2.40:1
Frame rate mode : Constant
Frame rate : 23.976 (23976/1000) FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.067
Stream size : 2.16 GiB (76%)
Writing library : x264 core 152 r2851M ba24899
Encoding settings : cabac=1 / ref=4 / deblock=1:-1:-1 / analyse=0x3:0x113 / me=umh / subme=9 / psy=1 / psy_rd=1.00:0.15 / mixed_ref=1 / me_range=24 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-3 / threads=32 / lookahead_threads=4 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=50 / rc=2pass / mbtree=1 / bitrate=2500 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / vbv_maxrate=31250 / vbv_bufsize=31250 / nal_hrd=none / filler=0 / ip_ratio=1.40 / aq=3:1.00
Default : Yes
Forced : No

Audio #1
ID : 2
Format : AC-3
Format/Info : Audio Coding 3
Commercial name : Dolby Digital
Codec ID : A_AC3
Duration : 2 h 3 min
Bit rate mode : Constant
Bit rate : 384 kb/s
Channel(s) : 6 channels
Channel layout : L R C LFE Ls Rs
Sampling rate : 48.0 kHz
Frame rate : 31.250 FPS (1536 SPF)
Bit depth : 16 bits
Compression mode : Lossy
Delay relative to video : -43 ms
Stream size : 340 MiB (12%)
Language : French
Service kind : Complete Main
Default : Yes
Forced : No

Audio #2
ID : 3
Format : AC-3
Format/Info : Audio Coding 3
Commercial name : Dolby Digital
Codec ID : A_AC3
Duration : 2 h 3 min
Bit rate mode : Constant
Bit rate : 384 kb/s
Channel(s) : 6 channels
Channel layout : L R C LFE Ls Rs
Sampling rate : 48.0 kHz
Frame rate : 31.250 FPS (1536 SPF)
Bit depth : 16 bits
Compression mode : Lossy
Delay relative to video : -43 ms
Stream size : 340 MiB (12%)
Language : English
Service kind : Complete Main
Default : No
Forced : No

Text #1
ID : 4
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Duration : 1 h 55 min
Bit rate : 0 b/s
Count of elements : 37
Stream size : 801 Bytes (0%)
Title : Forced
Language : French
Default : Yes
Forced : Yes

Text #2
ID : 5
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Duration : 2 h 2 min
Bit rate : 48 b/s
Count of elements : 1328
Stream size : 43.2 KiB (0%)
Title : French
Language : French
Default : No
Forced : No

Menu
00:00:00.000 : en:00:00:00.000
00:06:52.120 : en:00:06:52.120
00:14:07.889 : en:00:14:07.889
00:23:18.272 : en:00:23:18.272
00:29:38.026 : en:00:29:38.026
00:35:07.772 : en:00:35:07.772
00:44:08.437 : en:00:44:08.437
00:50:43.499 : en:00:50:43.499
00:56:18.625 : en:00:56:18.625
01:03:02.821 : en:01:03:02.821
01:11:17.398 : en:01:11:17.398
01:17:49.164 : en:01:17:49.164
01:27:03.051 : en:01:27:03.051
01:33:22.430 : en:01:33:22.430
01:40:51.796 : en:01:40:51.796
01:46:25.087 : en:01:46:25.087
01:52:49.888 : en:01:52:49.888

Mais il y a pas d’information sur le VBV (la taille d’un buffer qui est mit a 4900, le double du bitrate dans le tuto) ducoup je sais pas si j’aurai des problèmes ou pas.
Et j’aimerai bien sauter cette étape puisque elle prend ~1h30

conseil: le thé est meilleur avec un zeste de citron

+0 -0
Auteur du sujet

Salut,

Je voulais apprendre un peu comment fonctionnait la vidéo, ducoup je tente un petit projet à la netflix, en soit il y a aucun usage, quand j’aurais assez joué avec ce projet je le mettrai dans un coin. J’utilise osmc sur rpi pour tout ce qui est mediateck n’est pas utile, mais ca reste enrichissant.

J’essaye de me monter un site pour afficher mes films, je le fais sur mon raspberry pi et dans mon réseau locale.
Sur le rpi j’ai une balise video dans une page html qui est (shaka player).

J’ai réussis à ce que tout fonctionne en suivant le tuto, mais j’arrive pas à comprendre ce qui est fait dans le tuto. (Et c’est quand même le but principale)

D’après ce que j’avais compris il y a le codec (COmpression/DECompression), c’est la manière de compresser l’information de base, ensuite il y a un conteneur (mkv, mp4, avi etc) il structure les différents médias encodés (sous-titre, video, pistes audios etc)
Ensuite il y a dash: il s’agit de fournir un fichier indexant des parties du media, ainsi le client peut demander la partie qu’il lui faut (en pratique il indexe plusieur qualité du média comme ça le client n’a pas de coupure de chargement: si la bande passante ne suit plus, hop on prend le média dans une moins bonne qualité et qui chargera moins vite)

J’ai eu besoin de ~1h30 pour que le programme x264 encode la vidéo d’origine en un format brute x264, le truc que je veux savoir c’est : étant donné un fichier d’origine x264+mkv, Est-il possible de simplement extraire le média encodé en x264 du mkv, et le mettre en mp4. Sans que ça prennent 1h30 ? Comment savoir si je dois faire le traitement qui prend 1h30 ou pas ?

conseil: le thé est meilleur avec un zeste de citron

+0 -0

En théorie, oui. En pratique, non.

La première raison, c’est plus ou moins ce que dit le tuto : « The odds are long […] » signifie « Les chances sont faibles […] ». Il y a une foultitude de formats, bitrates, fréquences d’affichage possibles, donc les chances que ta vidéo soit pile dans le format voulu sont très réduites.

La seconde raison tient dans ta parenthèse :

(en pratique il indexe plusieur qualité du média […])

Pour produire plusieurs résolutions différentes du média, il faut le ré-encoder, quel que soit le codec, et c’est une opération hyper coûteuse.

Pour faire ça efficacement, Netflix (ou Youtube, c’est pareil) découpe d’abord les vidéos d’origine en chunks puis parallélise le calcul (les conversions) sur de nombreux serveurs. Dans leur cas, c’est même encore pire que pour toi, car pour chaque vidéo, ils produisent environ 200 répliques avec des codecs et des résolutions différentes, pour pouvoir streamer la vidéo sur des clients de nature très variable (applis Android/iOS, webapp, application sur smartTV…), dans toutes les situations possibles et imaginables.

Édité par nohar

I was a llama before it was cool

+1 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte