Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
今更聞けないビデオコーデックの話
Search
yasei no otoko
February 02, 2013
How-to & DIY
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
今更聞けないビデオコーデックの話
ゲーム用PV作成のための情報まとめ
yasei no otoko
February 02, 2013
More Decks by yasei no otoko
See All by yasei no otoko
How I Won Prize Money at a Hackathon Using Codex and Symphony Alpha
yasei_no_otoko
0
140
VR HMDとしてのVision Pro+ゲーム開発について
yasei_no_otoko
0
230
一人からのゲーム開発
yasei_no_otoko
1
920
Other Decks in How-to & DIY
See All in How-to & DIY
EXPO 2025 大屋根リングをぐるっと周回! 【GPSマルチユニット×ソラカメ実験】
scbc1167
0
150
おっきなガジェットの回線事情
2bo
1
240
生成AIは 『コードを書く』だけじゃない アーキテクチャ設計から環境構築まで——社内データ活用DXの全貌
punipuni_mint
0
230
スタックチャンはカワイイの夢を見るか?
syumme01
0
190
AIツール“三種の神器”ではじめる 自動運転AIチャレンジ
covao
0
120
あなたは何故コミュニティに参加するのか?
awsjcpm
3
440
EmbeddingGemmaをDifyから使いたいけどAPI経由はつまらん #iotlt #gemma #dify
n0bisuke2
0
220
大学内にファブスペースをつくってみた #sapporo3dp / Making HIU Fab
yumulab
1
210
JAWS-UG/AWS Community Update 2026/05/25 JAWS-UG札幌 & 秋田コラボ会
awsjcpm
0
140
終わりのない会議を超えて:HolacracyのTactical Meetingを体験しよう!
andrearc
0
410
Trying "Vibe No-code/Low-code" with MCP #noderedjp
n0bisuke2
0
170
サイボウズには100名以上の社員が出演する"夏フェス"があるって本当?
oguemon
1
980
Featured
See All Featured
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
490
The Invisible Side of Design
smashingmag
301
52k
Are puppies a ranking factor?
jonoalderson
2
3.9k
New Earth Scene 8
popppiees
3
2.5k
Navigating Team Friction
lara
192
16k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
400
Marketing to machines
jonoalderson
1
5.7k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
920
RailsConf 2023
tenderlove
30
1.5k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
Un-Boring Meetings
codingconduct
0
410
Transcript
ࠓߋฉ͚ͳ͍ ϏσΦίʔσοΫͷ ੜͷஉ 1
ߨԋͷςʔϚ ήʔϜ։ൃʹ͓͚Δಈը࡞धཁͷߴ·Γ PVɺήʔϜϜʔϏʔͷ࡞ ಈըαΠτͷΞοϓϩʔυ ߴը࣭ͳΛ࡞͢ΔఔΛௐΔͷେม Ұͭʹ·ͱΊΑ͏ 2
ಈըͱ จࣈ௨Γʮಈ͘ʯʮըʯ ϑϨʔϜ͝ͱʹը͕ΓସΘ͍ͬͯ͘ σδλϧಈը੩ࢭըͷू·Γ gifΞχϝෳͷը૾ϑΝΠϧ͔Β࡞ΒΕΔ 3
͜͜Ͱٙ ʮgifී௨ͷը૾ϑΝΠϧΑΓ༰ྔ͕େ͖͍͚Ͳ flvͱ͔mp4ͦΜͳʹେ͖͘ͳ͍Αʁʯ !ίʔσοΫͷ͓͔͛ 4
Τϯίʔμʔ(ූ߸Խث)ͱσίʔμʔ(෮߸Խث) ͔ΒΔѹॖن֨ ը૾ίʔσοΫɺԻίʔσοΫɺಈը← ίʔσοΫ(CODEC)ѹॖ(COmp~)ͱ ৳ு(DEComp~)ΛΈ߹Θͤͨઐ༻ޠ ίʔσοΫͱ 5
.gifΑΓ͍ܰ.mp4ʁ جຊతʹ.mp4ͷಈըಉ͡ը࣭ɺ ղ૾ͷgifಈըΑΓϑΝΠϧαΠζ͕খ͍͞ !gifΑΓෳࡶͳॲཧͰѹॖ͍ͯ͠Δ͔Β ੲMotion JPEGͱ͍͏֤ϑϨʔϜΛJPEGͰ อଘ͢Δಈըܗࣜ͋ͬͨ 6
.mp4(MPEG-4)ͱ ͦΕࣗମͨͩͷϑΝΠϧίϯςφ Moving Picture Experts Group(MPEG) ͕نఆ͍ͯ͠ΔϑΝΠϧ֨ೲϑΥʔϚοτ ಈըϑΝΠϧԻϑΝΠϧ֨ೲͰ͖Δ 7
Ұൠతͳ.mp4ಈըͷத 動画コーデック:H.264 (MPEG4-‐‑‒AVC) AVC = Advanced Video Coding 先進的 動画 符号化 ⾳音声コーデック:AAC
AAC = Advanced Audio Coding 先進的 ⾳音響 符号化 8
H.264͕ͬͯΔ͜ͱ ۭؒม ϑϨʔϜؒ༧ଌ ͷըૉਫ਼ͷಈ͖ิঈ Πϯτϥ༧ଌ Τϯτϩϐʔූ߸Խ 9
Ϡό͍ 10
ಈըѹॖͷτϨʔυΦϑ ੵΈॏͳͬͨҒ͍ਓୡͷݚڀͷՌͷ͓͔͛Ͱɺ ը࣭ͱϑΝΠϧαΠζͷτϨʔυΦϑ΄΅ແ͍ ѹॖͱͰτϨʔυΦϑ͕ى͖Δ 11
ίʔσοΫͷ͍͚ ༻్ ѹॖ ѹॖ ը࣭ Ωϟϓνϟ ಈըฤू Πϯλʔωοτ ΠϯήʔϜ ࠷
ೋͷ࣍ ඇྼԽ ͍ํ͕ྑ͍ ͦΕͳΓ ΄΅ඇྼԽ ͯ͘ྑ͍ ߴ͍ํ͕ྑ͍ ͳΔ͘ ͯ͘ྑ͍ ߴ͍ํ͕ྑ͍ ߴ͍ํ͕ྑ͍ 12
ୈ1ɿΩϟϓνϟ 30ʙ60fpsͰಈ͘ήʔϜͷө૾Λ࿙Βͣ͞ ϦΞϧλΠϜͰίϐʔͯ͠ѹॖ͢Δ ͕Γͳ͍ͱϑϨʔϜυϩοϓ͕ى͖ɺ ࡱͬͨө૾͕࣮ࡍΑΓΧΫΧΫʹͳΔ ߋʹ͕Γͳ͍ͱήʔϜࣗମ͘ͳΔ ޙʑͷѹॖͰը࣭͕Լ͕ΔͷͰɺ ͜ͷஈ֊Ͱը࣭ྼԽͤͨ͘͞ͳ͍ 13
ͱը࣭͕྆ํඞཁ ͡Ό͋ѹॖͤͣʹࡱΖ͏ 14
ʁ 15
×·͕͍ͪ ແѹॖඇৗʹ༰ྔ͕૿͑Δ 1ըૉRGB24bit(3όΠτ) ຖϑϨʔϜّʹΩϟϓνϟ 640x480x3όΠτ×60fps=53MB/s ͜Ε͚ͩେ͖͍ͱHDDͷॻ͖ࠐΈ༨ܭͳෛՙʹ ͦͦ༰ྔ͕Γͳ͍ 16
ՄٯѹॖίʔσοΫΛ͏ Մٯѹॖͱʁ ʮѹॖʯͯ͠ʮٯʯʹ͢͜ͱ͕ʮՄʯೳ Τϯίʔυલͱσίʔυޙͷ༰͕Ұக ྼԽ͢ΔඇՄٯѹॖ ΄΅ແѹॖͷ1/2ະຬͷαΠζʹ 17
ίϥϜɿՄٯѹॖίʔσοΫͷྫ Huffyuv ݹ͔͘Β͋ΔՄٯѹॖίʔσοΫ ໊લ௨Γ”Huff”manූ߸ͱYUV৭ۭؒͷม ͳͲʹΑͬͯՄٯѹॖΛߦ͏ ༗໊͕ͩɺϚϧνίΞɾSIMD࠷దԽϏϧυ͕ແ͍ͨΊ ݱࡏར༻͢Δͷඇਪ ରԠͨ͠ੜϏϧυ͋Δ͕ɺ௨ৗ൛ͱޓੑ͕ແ͍ͨΊ ड͚͠ʹ͏߹ඇਪ ͘͠Ͳ͏ͤϑϦʔιϑτͳͷͰ྆ํͷPCʹೖΕΔ
18
͓͢͢ΊΩϟϓνϟιϑτ Fraps γΣΞΣΞ(37υϧ)ɾฮͷಈըΩϟϓνϟ DXtory γΣΞΣΞ(3600ԁ)ɾߋ৽͕සൟͰWin8ରԠ ྆ํͱಠࣗίʔσοΫΛར༻͓ͯ͠Γɺ ߴ͔ͭඇྼԽ͔ͭ؆୯ૢ࡞ͰΩϟϓνϟ͕Մೳ 19
ΞϚԿͱ͔ʁ ϑϦʔ͕ͩҎԼͷཧ༝ʹΑΓඇਪ Windows Vista/7/8ඇαϙʔτ !͜ͷ͍ͤͰըࣗମ্͕ڃऀ͚ʹͳ͍ͬͯΔ OpenGL/DirectX10Ҏ߱ඇରԠ ༗ྉͷಠࣗίʔσοΫ͕64bitඇରԠ !64bitͷಈըฤूιϑτͰಡΊͳ͍ 20
Ωϟϓνϟ·ͱΊ ͍ํ͕ྑ͍͚ͲແѹॖσϝϦοτͷํ͕ େ͖͍ͷͰɺՄٯѹॖίʔσοΫΛ͏ Fraps͔DXtoryΛ͑ෆࣗ༝͠ͳ͍ 21
ୈ2ɿಈըฤू PVͳͲͷಈըฤूɺ ͦͷૉࡐͱͳΔϑΝΠϧͷѻ͍ Ωϟϓνϟ΄ͲͷΤϯίʔυඞཁແ͍͕ɺ Ϟνϕʔγϣϯ͕Լ͕Βͳ͍ఔͷͱ ඇྼԽͦ͘͠Εʹ͍ۙߴը࣭͕ඞཁ 22
͓͢͢ΊίʔσοΫ Utvideo Codec ࠃ࢈ͰϑϦʔɻχίϚεP͕ฤू࡞ۀͷҝʹ։ൃ ݱࡏMac൛ग़ͯ࠷ڧʹ͍ۙ Lagarith Codec ւ֎࢈ϑϦʔɻUtvideoΑΓ%ྑ͘ॖΉ Մٯѹॖͷ%ʹඦMB୯ҐͳͷͰ݁ߏॏཁ 23
ίϥϜɿϑΝΠϧͷड͚࣌͠ ૉࡐͳΔ͘ߴը࣭Ͱ͍ͨ͠ʂ Ωϟϓνϟͨ͠··ͷϑΝΠϧੌ·͘͡େ͖͍ FrapsDXtoryಠࣗίʔσοΫͳͷͰɺ ιϑτΛ૬खͷਓʹೖΕͯΒ͏ඞཁ͕͋Δ Lagarith͘͠H.264ߴϏοτϨʔτͳͲɺ ߴը࣭Ͱ༰ྔͷখ͘͞ͳΔίʔσοΫʹม͢Δ 24
ୈ3ɿΠϯλʔωοτ YoutubeɺχίχίಈըɺVimeoͳͲ ΠϯλʔωοτͷಈըαΠτʹߘ͢Δ߹ ্ه3αΠτͲΕ.mp4(H.264/AAC)͕ඪ४ ͱͳ͍ͬͯΔͷͰ͜ΕΛରʹ 25
H.264ͷѹॖઃఆ ϓϩϑΝΠϧʹΑͬͯɺಉ͡ϏοτϨʔτͰ ѹॖॲཧ͕େ͖͘มΘΔ Baseline γϯϓϧͳϑϨʔϜ༧ଌͱΤϯτϩϐʔූ߸Խ Main BaselineʹॏΈ͚༧ଌͳͲͷॲཧΛՃ High Mainʹ8x8ըૉࢄίαΠϯมɺྔࢠԽߦྻΛՃ 26
͡Ό͋High/ߴϏοτϨʔτͰྑ͍ͷʁ ͱ͜Ζ͕Ͳ͍ͬ͜ χίχίಈըʹΤίϊϛʔϞʔυ͕ଘࡏ ݱࡏBaselineɺ29.97fps ը࣭͕ܹ͘͠མͪɺ ݩ͕60fpsͷ߹ΧΫΧΫʹͳΔ ϙʔλϒϧػثͳͲMain·ͰରԠͷͷ͕ଟ͍ 27
Τίϊϛʔճආͷεεϝ Main/HighͰϏοτϨʔτΛ٧Ίͨํ͕ ΤίϊϛʔԽ͞ΕͨಈըΑΓߴը࣭ʹͳΔ ݱࡏͷ্ݶ445kbps(445440bps)(Իؚ) 445440bpsϐολϦͱ͍͏༁Ͱແ͍ͷͰ ࠶ੜςετඞਢ 28
ɹίϥϜɿH.264ͷϨϕϧʹ͍ͭͯ H.264Ͱɺಈըͷղ૾ͱϑϨʔϜϨʔτʹΑΔ ඵؒϒϩοΫαΠζʹΑͬͯϨϕϧ͕ఆΊΒΕ͍ͯΔ ࢀߟɿMobileHackerz χίχίಈըͷਪLevel 3.1Ͱɺ͜Ε 720x480@80fpsɺ1280x720@30fps·Ͱର 60fpsͷ߹1280x720Ҏ্ͷήʔϜͰ ղ૾ʹϦαΠζ͢Δͷ͕ඞਢ 29
ԻίʔσοΫʁ ҰൠతʹAACͱݴ͑ɺ iTunesͳͲʹΘΕΔAAC-LC͕ओྲྀ͕ͩɺ ۃϏοτϨʔτͷ߹HE-AACΛͬͨํ͕ ϊΠζ͕গͳ͘៉ྷʹௌ͑͜Δ 48kbpsͰෆշͳϊΠζ΄΅ௌ͑͜ͳ͍ LCʹLow Complexity HEʹHigh Efficiency
30
ίϥϜɿͭΜͰΕΜ͜ ໊લ;͚͍ͯ͟Δ͚Ͳ༏लͳιϑτ ࣭ରܗࣜͰ.mp4ͷΤϯίʔυઃఆΛߦ͑Δ ඞཁιϑτΛࣗಈΠϯετʔϧͯ͘͠ΕΔ ΤίϊϛʔճආɺHE-AACɺYoutubeʹରԠ ࠷ऴ൛͕9ݸ(!?)ग़͓ͯΓɺࠓޙ͕ग़ͨ߹ ੜͷՆ࿇ࠜͷํΛ༻͢Δ͜ͱΛਪ 31
ίϥϜɿχίχίҎ֎ YoutubeͱVimeoϑϧHDʹରԠ͓ͯ͠Γ ϏοτϨʔτͷ੍গͳ͍͕ ͲͪΒ30fps·Ͱ͔͠ରԠ͍ͯ͠ͳ͍ͷͰ Ξοϓϩʔυ͢Δ߹ը࣭ॏࢹͰ 32
Πϯλʔωοτಈը·ͱΊ ࣮࣭.mp4(H.264/AAC)Ұ ΤίϊϛʔճආΛ͢Δ͔͠ͳ͍͔ྑ͘ݕ౼͢Δ Τϯίʔυॳ৺ऀ·ͣͭΜͰΕΜ͜Λ͏ YoutubeVimeo30fpsʹͳΔ͜ͱΛߟྀ 33
ୈ4ɿΠϯήʔϜϜʔϏʔ ήʔϜதͰ࠶ੜ͢Δಈը DirectShowͰΘΕΔίʔσοΫશʹڥґଘͰ ffdshowͳͲͰஔ͖͑ΒΕΔՄೳੑ͕͋Γɺ ͦΕʹΑΔόά͕ى͜ΓಘΔ MSήʔϜ։ൃʹ͓͍ͯDirectShowΛඇਪAPIࢦఆ Media Foundation͕ݱࡏͷਪAPIʢ͕ͩVistaҎ߱ʣ ສશΛظ͢ͳΒήʔϜϓϩάϥϜଆͰσίʔμΛࡌ 34
·ͱΊ ΩϟϓνϟFraps͔DXtoryͰ ಈըฤूૉࡐʹՄٯѹॖίʔσοΫΛ Πϯλʔωοτʹ্͛Δಈըx264Ͱ࡞ ήʔϜϜʔϏʔ࠶ੜ݁ߏमཏͷಓ 35
ձͰͷQ&A(1) σίʔυࡌͱ۩ମతʹʁ ಈըϑΝΠϧͷಡΈࠐΈ ˠσίʔυͯ͠ϑϨʔϜΛऔΓग़͢ ˠϑϨʔϜόοϑΝςΫενϟʹϨϯμϦϯά ͱ͍ͬͨॲཧΛ࣮͢Δ͜ͱ 36
ձͰͷQ&A(2) ήʔϜʹΈࠐΊΔσίʔμͷྫͱʁ MPEGܥ(H.264)ಛڐͷͨΊجຊશͯΞτ Ogg TheoraɾOn2 VP8ͳͲͷΦʔϓϯιʔε BinkͳͲͷήʔϜ༻ಈըϛυϧΣΞ͋Δ 37
ձͰͷQ&A(3) ΤίϊϛʔϞʔυͷৄࡉΛΓ͍ͨ ฏ18ʙ26࣌ɺٳ12ʙ26࣌ͷ ϐʔΫλΠϜʹ࣮ࢪ͞ΕΔҰൠձһ͚ͷଳҬ੍ݶ ϏοτϨʔτͷߴ͍ಈը͚ͩΤίϊϛʔϞʔυͷಈը͕ Ұൠձһʹ࠶ੜ͞Εͯ͠·͏ Baseline/Level3.0ɺ360kbpsɺ29.970fps AAC-LC 64kbpsɹͱແࢹͰ͖ͳ͍Ϩϕϧͷը࣭ɾԻ࣭ʹͳΔ Ұൠձһͷׂ߹ΞΫςΟϒϢʔβͷ͓Αͦ2/3
΄ͱΜͲͷࢹௌऀ͕ը࣭ͷํ͚ͩͰஅͯ͠͠·͏͜ͱΛ ະવʹ͙ͨΊʹΤίϊϛʔճආΛߦ͏ͷ͔ͳΓޮՌ͋Γ 38
ձͰͷQ&A(4) H.265(HEVC)͕ग़ͨΒͦͬͪͷํ͕ྑ͍ʁ ରԠ͍ͯ͠ΔΤϯίʔμɾσίʔμ͕·ͩແ͍ ࠓिن֨ͱͯ͠ঝೝ͞Ε͔ͨΓ H.265Λ༻͍Δ4Kɾ8K์ૹ։͕࢝ૣ·ͬͨͷͰ ͜Ε͔Βॱ࣍ग़ͯ͘ΔͱࢥΘΕΔ 39
ձͰͷQ&A(5) ίʔσοΫͷιʔείʔυެ։͞Ε͍ͯΔʁ Utvideo,Lagarith,x264,VP8ͳͲ ιʔε͕ެ։͞Ε͓ͯΓɺ ϚϧνίΞɾSIMD(SSE/AVX)ରԠΞηϯϒϦ ଐ͍ͯ͠ΔͷͰฒྻԽͷࢀߟʹ 40
͓·͚ɿΠϯλʔϨʔε ಈըΛحஈͱۮஈͰަޓʹදࣔ͢Δ PCϞχλϓϩάϨογϒ(Ұׅදࣔ)ͳͷͰ ΠϯλʔϨʔεಈըΛ࠶ੜ͢Δͱඳը͞Εͳ͍ஈ͕ ࣶϊΠζͷΑ͏ʹݟ͑ͯ͠·͏ PCήʔϜͷ߹ըૉࡐ͕ϓϩάϨογϒͳͷͰɺ ઃఆΛؒҧ͑ͳ͍ݶΓ͜ͷى͖ͳ͍ ى͖ΔͱΤίϊϛʔฒʹृ͘ͳΔͷͰ ฤूιϑτͷઃఆʹҙ 41