B-frame jẹ́ fireemu fídíò tó lè lo fireemu kan tó wà ṣáájú àti ẹlòmíì tó wà lẹ́yìn láti kọ àwòrán rẹ̀. B túmọ̀ sí bidirectional. B-frames ń fún ní ìfípamọ́ síi ju irú fireemu mìíràn lọ, èyí ló ràn lọ́wọ́ láti jẹ́ kí fídíò kékeré.
Nínú metadata fáìlì fídíò, o lè rí pálá kan tí a ń pè ní Has B Frames, tí a tún máa ń kọ sí has_b_frames. Orúkọ rẹ̀ dà bíi ìbéèrè béèni tàbí béẹkọ, ṣùgbọ́n iye rẹ̀ jẹ́ nọ́mbà. Nọ́mbà yìí ń sọ fún ọ mélòó ni fireemu tí decoder gbọ́dọ̀ lè pa mọ́ nínú ìrántí láti fi fídíò hàn ní ìtẹ̀síwájú tó tọ́.
Bí B-frame ṣe yàtọ̀ sí I-frame àti P-frame
Ìfípamọ́ fídíò sábà máa ń ṣiṣẹ́ nípa fífi àwọn fireemu wé ara wọn kí ó sì ṣàkọsílẹ̀ ìyàtọ̀ láàárín wọn. Fídíò MPEG-2 yà àwọn irú fireemu mẹ́ta yìí sọ́tọ̀:
- I-frame: a kóòdù láì tọ́ka sí àwọn fireemu míì, nítorí náà ìtumọ̀ lè bẹ̀rẹ̀ níbí
- P-frame: lè lo I-frame tàbí P-frame tó ti wá ṣáájú
- B-frame: lè lo I-frame tàbí P-frame tó wà ṣáájú àti tó wà lẹ́yìn
B-frame lè dá lórí fireemu kan tó máa wá lẹ́yìn lọ́jọ́ọ́jọ́, nítorí náà a gbọ́dọ̀ kọ́kọ́ pa fireemu tó wà lẹ́yìn yẹn mọ́. Ìlànà tí a ti pa a mọ́ yàtọ̀ sí bí o ṣe rí i lórí iboju. Àtòjọ̀ MPEG-2 àpẹẹrẹ sábà máa rí báyìí:
- Bí wọ́n ṣe ń fi hàn:
B1 B2 I3 B4 B5 P6 B7 B8 P9 B10 B11 P12 - Bí wọ́n ṣe pa a mọ́ sílùú:
I3 B1 B2 P6 B4 B5 P9 B7 B8 P12 B10 B11
Bá ìyẹn ṣe rí
Has B Frames jẹ́ nọ́mbà àkúnya. FFmpeg ń ṣàlàyé iye yìí gẹ́gẹ́ bí ìwọn àpò ìtúnṣètò fireemu nínú decoder. Fún fídíò MPEG-2, FFmpeg sọ àwọn iye méjì:
0: fídíò pẹ̀lú ìfarapa díẹ̀ péré, pẹ̀lú I-frames àti P-frames nìkan1: fídíò pẹ̀lú I-frames, P-frames, àti B-frames
Àwọn encoder H.264 àti HEVC tún lè pa díẹ̀ lára B-frames mọ́ gẹ́gẹ́ bí àtọ́ka fún àwọn fireemu míì. Àwọn fáìlì ìdánwò FFmpeg fún H.264 ń fi hàn bí èyí ṣe ń yí iye padà. Orúkọ fáìlì ń fi àtúntò encoder hàn:
- Ó pọ̀jù jù B-frames mẹ́ta lọ lẹ́yìn ara wọn, kò sí ẹnìkan tí a fi sílẹ̀ gẹ́gẹ́ bí àtọ́ka:
1 - Ó pọ̀jù jù B-frames mẹ́ta lọ lẹ́yìn ara wọn, díẹ̀ ni a fi sílẹ̀ gẹ́gẹ́ bí àtọ́ka:
2 - Ó pọ̀jù jù B-frames mẹ́rin lọ lẹ́yìn ara wọn, díẹ̀ ni a fi sílẹ̀ gẹ́gẹ́ bí àtọ́ka:
2
Nítorí náà iye yìí kì í ṣe kańtìtì B-frames. Ètò ffprobe ń fi irú kọọkan fireemu hàn gẹ́gẹ́ bí iye pict_type: I, P, tàbí B. Pálá NB Frames ń fi kańtìtì gbogbo fireemu hàn, ṣùgbọ́n kì í sọ irú wọn.
Nibo ni iye ti wa
Orúkọ pálá náà wá láti ọdọ FFmpeg, tí ètò ffprobe rẹ̀ fi has_b_frames hàn fún àwọn sísàn fídíò. Sísàn H.264 lè sọ nọ́mbà náà sínú àkòrí tirẹ̀. Bí àkòrí náà kò bá sọ nọ́mbà náà, FFmpeg máa yọ ọ jáde láti inú àwọn fireemu àti àsìkò wọn.
Àtúntò encoder ló ń pinnu bóyá fídíò máa lo B-frames. Nínú FFmpeg àti nínú encoder Microsoft H.264, àtúntò 0 máa ń pa B-frames déédé.
Àwọn fáìlì wo ló rú u
Pálá yìí wà fún àwọn sísàn fídíò nìkan. O lè rí pálá yìí fún fídíò nínú fáìlì MP4, MOV, MKV, WebM, àti AVI. Fáìlì MOV pẹ̀lú àwọn fireemu tí a tún ṣètò tún ń pa tábìlì kan mọ́ pẹ̀lú àsìkò láàárín ìtumọ̀ àti fífi kọọkan fireemu hàn.
Codec ló ń pinnu bóyá B-frames ṣeé ṣe. Fídíò MPEG-2 àti profáìlì H.264 Main lè lo wọn, ṣùgbọ́n profáìlì H.264 Baseline kò lè. VP8, codec tí a fi n ṣiṣẹ́ nínú fáìlì WebM, kò ní B-frames rárá, nítorí pé àwọn fireemu rẹ̀ kì í ṣe amíkan láti ọwọ́ àwọn fireemu tó wá lẹ́yìn.
Idi ti o fi ṣe pataki
B-frames ń ràn lọ́wọ́ láti jẹ́ kí fídíò kékeré, ṣùgbọ́n wọ́n ń fi ìfarapa kún un. Encoder gbọ́dọ̀ tún ṣètò àwọn fireemu kí ó tó pa á mọ́, ìfarapa yìí sì dá lórí mélòó ni B-frames tó wà lẹ́yìn ara wọn.
Fídíò tí a tún ṣètò ní àsìkò tún ní àsìkò méjì fún kọọkan fireemu: àsìkò tí a máa túmọ̀ fireemu àti àsìkò tí a máa fi hàn. FFmpeg ń fi méjèèjì hàn gẹ́gẹ́ bí timestamps nínú time base sísàn náà.