• Kiara Koval Shows New Tools & Techniques for Procedural Modeling
    cgshares.com
    Tech Artist Kiara Koval is a master of procedural solutions for environment art, and if youve been wondering what she does to make her projects so impressive, here is the answer.Koval showed some of the new tools and techniques shes created for Unreal Engine and Houdini to make her life easier.Her OSM building pipeline tools add details like windows, roofs, and scattered objects onto standard OSM data, clean object-aligned UVs, and enable art-directable vertex colors for Unreal Engine material building quickly. Moreover, the OSM project to landscape node is a great solution for neatly aligning all the buildings to the ground.Furthermore, Kovals OSM road creator properly handles intersections, outputs sidewalks, driveways, and crosswalks, and makes it easy to control various road type widths.You can see the tools in action in her procedural environment builder and this beautiful landscape.You will soon be able to use these and other tools made by Koval for free when she uploads them.Find more on her LinkedIn and join our80 Level Talent platformand ournew Discord server, follow us onInstagram,Twitter,LinkedIn,Telegram,TikTok, andThreads,where we share breakdowns, the latest news, awesome artworks, and more.Source link The post Kiara Koval Shows New Tools & Techniques for Procedural Modeling appeared first on CG SHARES.
    0 Comentários ·0 Compartilhamentos ·76 Visualizações
  • Learn How To Create Multi-Lane Road System In Unreal Engine 5
    cgshares.com
    Weve been following jourverse for quite some time now, ever since he started working on a tutorial series last year focused on building a traffic system in Unreal Engine 5. After a while, the developer released the full version of this tool for purchase and recently shared some new videos, so if youve missed them, be sure to catch up.In the latest 2-hour-long tutorial, youll learn how to create a road network tool to generate multi-lane roads with dynamic lane marking materials. Along with jourverse, youll implement pathfinding offsets based on the current lane and develop a lane-switching system for both before and after turning at intersections.Findall the released chapters in the dedicatedplaylistand subscribe to jourversesYouTube channelfor more:Also, join our80 Level Talent platformand ournew Discord server, follow us onInstagram,Twitter,LinkedIn,Telegram,TikTok, andThreads,where we share breakdowns, the latest news, awesome artworks, and more.Source link The post Learn How To Create Multi-Lane Road System In Unreal Engine 5 appeared first on CG SHARES.
    0 Comentários ·0 Compartilhamentos ·79 Visualizações
  • Human Nature - Branding, Packaging, & Website Design
    www.behance.net
    Human Nature is a daily ritual for reconnecting?with yourself, your biology, and the natural rhythm that lives within all of us. Built on the belief that feeling good is our birthright, Human Nature offers carefully formulated supplements designed to support energy, clarity, and balance from the inside out. With science-backed ingredients and a less-is-more philosophy, we invite you to tune into your body's own intelligence, nourish your system, and move through life with intention. This is wellness that doesn't shout, but guides?a quiet return to what's real.
    0 Comentários ·0 Compartilhamentos ·79 Visualizações
  • Get This High-Tech Cube Puzzle For Over 50% Off During Amazon's Spring Sale
    www.gamespot.com
    AI Robot Cube $70 (was $120) | Select customers can get it for only $49. See at Amazon Whether you're a total Rubik's Cube novice or a seasoned solver looking for a unique new puzzle to add to your collection, the ex-Mars AI Robot Cube is worth checking out. Successfully funded by Kickstarter backers, the AI Robot Cube hit store shelves about a year ago with a lofty $120 price tag. During Amazon's Big Spring Sale, however, you can get this unique electronic puzzle for as low as $49.Amazon's discount drops the price to $70, but shoppers in select US regions can also take advantage of a manufacturer coupon--located below the price--that slashes an additional 30% from the cost at checkout. If eligible, you'll wind up saving $71 on this high-tech gadget that we enjoyed when we tried it last fall.Continue Reading at GameSpot
    0 Comentários ·0 Compartilhamentos ·82 Visualizações
  • Games Like Diablo To Loot Your Way Through In 2025
    www.gamespot.com
    There is no shortage of Diablo-like video games to play in 2025. The dungeon-crawling RPG series has been an iconic part of gaming as a pioneer in Western RPGs, setting a foundation for others to follow and build upon. Diablo 2 created an entire subgenre of similar titles originally referred to as action-RPGs (Diablo pioneered and popularized real-time combat in isometric computer RPGs) but are now more commonly called ARPGs to avoid confusion with behind-the-back action-RPGs like The Witcher 3. Regardless of what term you use to describe them, these isometric RPGs all aim to recreate Diablo's satisfying gameplay loop with an emphasis on dungeon crawling, monster slaying, character-enhancing loot, and multiplayer features. However, it's definitely fair to say that some Diablo-likes are better than others.In case you're looking for something to scratch the Diablo itch, we've selected our favorites in the action-RPG genre. From well-known homages like Torchlight 2 to lesser-known fare like Victor Vran, we've covered nearly all the games in this style that you'd ever want to play. We've even honed in on a few selections that deliver some of the same thrills without quite fitting into its exact genre niche. The next time you feel that urge to grind, give one of these a try. You might be surprised how much you like it.Meanwhile, the Diablo franchise itself is as varied as this list, with Diablo 2, 3, 4 and even the mobile title Diablo Immortal each offering their flavor of demon-slaying and loot hunting. Diablo 4 is on Xbox Game Pass, so you can play it as part of your subscription. The Vessel of Hatred expansion isn't included in the Game Pass version, but your subscription includes a discount for it. Blizzard additionally remade Diablo 2 in the form of 2021's Diablo 2: Resurrected, for those who prefer a more old-school dive into the genre. You can also check out the best Game Pass games, as well as tons of other great dungeon-crawlers. The AscentDeveloper: Neon GiantRelease Date: July 29, 2021Platforms: PC, PlayStation 4, PlayStation 5, Xbox One, Xbox Series X|SGenre: Twin-Stick Shooter ARPGMultiplayer: Four-player Co-opThis dungeon-crawler is notable mostly for its setting, which is about as far from the traditional swords and sorcery as you can get. The Ascent adopts a cyberpunk aesthetic, and instead of descending into the depths of a dungeon, you're actually climbing up a massive corporate tower. Your usual suite of spell-like powers are represented by high-tech gadgets, and you can climb the tech tree and customize a cyberdeck to your liking. It does focus more on ranged combat than many other Diablo-likes, since every build uses guns by default, but the enemy design is well-tuned for that purpose. And like the best dungeon crawlers, you can play with up to three friends to take down cyber-threats cooperatively.Read our The Ascent review. See at Fanatical Darksiders: GenesisDeveloper: Airshop SyndicateRelease Date: December 5, 2019Platforms: PC, PlayStation 4, Xbox One, Nintendo Switch, MobileGenre: Action RPGMultiplayer: Two-player Co-opA lesser-known spin-off of the Darksiders franchise, Genesis is an isometric hack-and-slash game with co-op support and tons of enemies to slay. It's less of an RPG than other games on this list, with fewer mechanics to explore, and not much in the way of proper builds. However, a lot of players feel that it's one of the best games in the franchise, perhaps even better than some of the mainline entries. This is definitely a game that is best picked up on sale for a weekend play with a friend, and it excels in that situation.Read our Darksiders: Genesis review. See at Fanatical Grim DawnDeveloper: Crate EntertainmentRelease Date: February 25, 2016Platforms: PC, Xbox OneGenre: ARPGMultiplayer: Four-player Co-opCreated as a spiritual follow-up to Titan Quest, Grim Dawn is a cult ARPG that combines complex mechanics with deep build customization. Unlike most games in the genre, Grim Dawn doesn't have randomized enemy camps and dungeons, instead opting for a hand-designed approach. Players praise it for its replayability and variety of builds, while also noting substantial support from developer Crate Entertainment and a vibrant mod scene that continues to this day. If you missed it on its original release in 2016, it's worth a look.Read our Grim Dawn review. See at Humble HadesDeveloper: Supergiant GamesRelease Date: December 6, 2018Platforms: PC, PlayStation 4, PlayStation 5, Xbox One, Xbox Series X|S, Nintendo SwitchGenre: Action RoguelikeMultiplayer: Eight-player Co-opThe roguelike Hades isn't a loot-driven RPG like the Diablo games, but its thrilling action combat and emphasis on crafting a build delivers some of the same satisfaction in a run-based package. Though you'll earn permanent boosts, much of the enjoyment of Hades involves selecting from a wide array of weapons and upgrades as you descend through the bowels of the underworld, giving an accelerated and repeatable experience of crafting your build. The combat itself is slick and fast-paced, and the enemy variety will keep you on your toes. Hades 2, currently in early access, introduces a new protagonist with her own playstyle, which should be more than enough to keep you on your toes.Read our Hades review. See at Steam Halls of TormentDeveloper: Chasing CarrotsRelease Date: March 9, 2023Platforms: PCGenre: Auto-Shooter SurvivalMultiplayer: NoMany of the games on this list borrow Diablo's gameplay style, but Halls of Torment is more about paying homage to its design aesthetic, reimagined in a different genre. The auto-shooter survival genre popularized by Vampire Survivors attracted many imitators, and Halls of Torment takes that concept and applies it to a Diablo 2-like setting and style. You'll still go on quick roguelike runs that almost inevitably lead to your own demise, but as you do, you'll chip away at upgrades to make your barbarian or archer that much heartier. If you want a Diablo fix mixed with the quick bite-sized play of a Survivor-like, this is a great mix that compels you to play just one more time, over and over. See at Steam Minecraft DungeonsDeveloper: Mojang StudiosRelease Date: May 26, 2020Platforms: PC, PlayStation 4, Xbox One, Nintendo SwitchGenre: ARPGMultiplayer: Four-player Co-opMinecraft Dungeons is a simple and fun take on the usual Diablo-like genre that can appeal to a wider audience. There's no complex build diagrams or multi-phase bosses requiring in-depth strategies here--just a lot of hacking, slashing, and watching the numbers go up. It's certainly one of the better-looking games on this list, as the voxel aesthetic of Minecraft stands out in the field, and its lighting is especially impressive. It's not a hardcore experience, but if you're looking for a grindfest that you can play with anybody, Minecraft Dungeons is very much in that ballpark.Read our Minecraft Dungeons review. See at Humble Path of ExileDeveloper: Grinding Gear GamesRelease Date: October 23, 2013Platforms: PC, PlayStation 4, Xbox OneGenre: ARPGMultiplayer: Six-player Co-opSometimes described by fans as the true successor to Diablo 2, Path Of Exile is a free-to-play ARPG that presents itself as a hardcore alternative to others in the market. Developed by a team of Diablo fans who were frustrated by the lack of new games in the genre in the early 2010s, Path Of Exile appeals the most to players who value depth of content over all else, as the game has received ten years of regular updates from developer Grinding Gear Games. A sequel, Path Of Exile 2, is currently scheduled to release in November. Even with the early-access launch of Path Of Exile 2, the original will continue to receive new seasonal updates, with many cosmetics and quality-of-life microtransactions (like additional stash tabs) carrying over between games.Read our Path of Exile review. See at Steam Path Of Exile 2Developer: Grinding Gear GamesRelease Date: December 6, 2024 (Early Access)Platforms: PC, Xbox Series X|S, PlayStation 5Multiplayer: Six-player Co-opPath Of Exile 2 may be in early access and currently only feature half of its campaign and character classes, but it's already a content for one of the best ARPGs ever made. It shares a lot of DNA with its predecessor but manages to carve out its own place in history thanks to its fantastic presentation and more methodical (at least for the first several dozen hours) combat that puts a heavy focus on From Software-style boss battles. It also takes some of the more confusing and frustrating aspects of the original Path Of Exile, like skill gems, and presents them in a new, more beginner-friendly system that still features loads of depth for those who love fine-tuning builds for maximum efficiency. Though its punishing endgame may not be to the liking of some, its campaign, even in its half-finished state, is a must-play for any who consider themselves an ARPG aficionado. The early access version of Path Of Exile 2 costs $30, but the game will eventually be free-to-play. See at Steam Titan QuestDeveloper: Iron Lore Entertainment, Demiurge StudiosRelease Date: June 26, 2006Platforms: PC, PlayStation 4, Xbox One, Nintendo Switch, MobileGenre: ARPGMultiplayer: Six-player Co-opOne of the oldest games on our list, Titan Quest doesn't quite belong to the first generation of Diablo-likes, but it's certainly not far behind them. It's an action-RPG with the familiar isometric perspective, though it trades Diablo's demonic milieu for an Ancient Greek setting. First conceptualized during the development of Age of Empires, Titan Quest has a throwback charm that will appeal to those who grew up with 2000s gaming, and its Anniversary Edition re-release from 2016 sands off some of its rough edges while keeping the experience authentic to the original. It's definitely not the best game on this list, but as far as solid ARPGs go, this is one worth considering. A nearly two-decades later sequel, Titan Quest 2, was announced in 2023 but does not yet have a release date.Read our Titan Quest review. See at Fanatical Torchlight 2Developer: Runic GamesRelease Date: September 20, 2012Platforms: PC, PlayStation 4, Xbox One, Nintendo SwitchGenre: ARPGMultiplayer: Six-player Co-opThe Torchlight games are some of the most renowned games in the Diablo-like genre, and for good reason. They combined the satisfying mob-killing action that made the series so enjoyable with a simpler approach that appeals to those who were scared away by the relatively complex builds and strategies required for the Diablo games. Torchlight 2 improved on every aspect of the original and is generally considered the peak of the series, though the new Torchlight Infinite is worth a look if you're interested in a live service version with a gacha system. Torchlight 2 also has a successful mod scene if you don't mind doing some research.Read our Torchlight 2 review. See at Fanatical Victor VranDeveloper: Heimimont GamesRelease Date: July 24, 2015Platforms: PC, PlayStation 4, Xbox One, Nintendo Switch, MobileGenre: ARPGMultiplayer: Four-player Co-opOne of the more obscure ARPGs to come out in the 2010s, Victor Vran is a different kind of Diablo-like. Like Minecraft Dungeons, it doesn't require a build guide or hundreds of hours of grinding to reach the end, though it does have a substantial endgame with fancy loot. The game is also surprisingly hard on the higher difficulties, but not so much that it requires you to look up a guide online. If you're looking for a forever ARPG like the Diablo series or Path of Exile, Victor Vran isn't for you, but it's a great game to play with a friend over a weekend if you want to relax.Read our Victor Vran review. See at Humble V RisingDeveloper: Stunlock StudiosRelease Date: May 17, 2022Platforms: PC, PlayStation 5Genre: Survival RPGMultiplayer: Ten-player Co-opThis action-RPG mixes in survival elements with gothic flair, putting you in the fabulous leather boots of a recently reawakened vampire. As a result, you need to avoid certain dangers like sunlight and make sure you constantly feed on the blood of NPCs, and as you progress you'll even begin building and customizing your own castle. As you build up your array of vampiric powers, the isometric combat bears a striking resemblance to Diablo's mage-casters, and you can put your skills to the test against an array of gruesome bosses. See at Fanatical Warhammer 40K: Inquisitor - MartyrDeveloper: Neocore GamesRelease Date: August 31, 2017Platforms: PC, PlayStation 4, PlayStation 5, Xbox One, Xbox Series X|SGenre: ARPGMultiplayer: Four-player Co-opThe Warhammer franchise has covered nearly every game genre, particularly with the Warhammer 40,000 series, and that includes the isometric Diablo-like with Warhammer 40,000: Inquisitor - Martyr. Battling against an assortment of Xenos and other vicious enemies, you make use of classic Warhammer 40,000 abilities and weapons, including the legendary chainsword. Being able to slaughter endless waves of enemies--heretics who defy the Emperor of Mankind--is very satisfying, even if the game's campaign lacks the variety of some of the other games on this list. See at Steam Warhammer: ChaosbaneDeveloper: Eko SoftwareRelease Date: May 31, 2019Platforms: PC, Xbox One, PlayStation 4Genre: ARPGMultiplayer: Four-player Co-opIf the grim darkness of the 41st millennium isn't your vibe, there is also an ARPG set in Games Workshop's more traditional fantasy setting. It may be less complex than Warhammer 40K: Inquisitor - Martyr, but it's still a fun (albeit more casual) romp through the Warhammer setting, with satisfying gameplay, unique boss fights, and five (or six, if you buy the Witcher Hunter DLC) different classes to choose from, including the iconic dwarven Slayer. Each class feels distinct yet still easy to pick up and play, and in addition to unique active and passive abilities, every class sports a special Bloodlust "ultimate" style ability that charges by defeating enemies that can be used to devastating effect. It can be lacking in terms of enemy variety and its story isn't exactly riveting, but Warhammer: Chaosbane still manages to be a fun distraction, especially when played with friends. See at Fanatical Last EpochDeveloper: 11th Hour GamesRelease Date: February 21, 2024Platforms: PCGenre: ARPGMultiplayer: Four-player Co-opAfter raising $255,000 on Kickstarter and spending five years in Steam early access, Last Epoch finally released in 2024 and made a big splash in the ARPG community. It's easy to see why. 11th Hour Games clearly is a fan of the genre and put a ton of thought into Last Epoch's systems, with one great example being how it solves the longstanding ARPG debate over whether to play with item trading or going the solo self-found route with its unique Trade Factions system. Toss in five base classes (each with three Mastery classes to evolve into), highly customizable skill upgrade trees for the game's more than 120 skills, an excellent crafting system, and seasonal updates, and there is plenty of ARPG goodness for fans of the genre to sink their teeth into here. See at Fanatical
    0 Comentários ·0 Compartilhamentos ·76 Visualizações
  • AC Shadows: Where To Find The Papers In Belly Of The Best Quest
    gamerant.com
    After meeting up with Akechi Mitsuhide and his son-in-law in Assassin's Creed Shadows, they team up with Naoe to put an end to Oda Nobunaga, who's hinted at being the Horseman. While talking to Ise Sadaoki, he reveals the plan to Naoe and how she'll arrive inside the Honnoji Temple, concealed in a delivery cart, ahead of the attack. However, for this plan to succeed, players must find important papers allowing the cart to enter the temple, starting the Belly of the Beast quest in AC Shadows.
    0 Comentários ·0 Compartilhamentos ·79 Visualizações
  • New Tomodachi Life Game Coming to the Switch
    gamerant.com
    During the final segment of the March 27 Nintendo Direct broadcast, the company revealed that Tomodachi Life: Living The Dream was in development for the Switch. Although Tomodachi Life: Living The Dream will not arrive until 2026, the announcement marked the return of the Mii-centric series that had not seen a release in over a decade.
    0 Comentários ·0 Compartilhamentos ·78 Visualizações
  • Getting Terminator 2s T-1000 into MK1 was both easy and incredibly hard
    www.polygon.com
    Guest characters are always a challenge, says Nick Nicastro, design manager at Mortal Kombat developer NetherRealm Studios. But theres at least one thing thats easy about bringing Mortal Kombat 1s newest kombatant, the Terminator T-1000, to the fighting game: a shared understanding of what the character is and what hes capable of in terms of being a cold-blooded killer.Were major fans of movies from the 80s and 90s, so were all pretty well versed in the references from [Terminator 2: Judgment Day], Nicastro says. Weve all probably seen the movie multiple times, and theres things that stick out things that just landed in your consciousness, scenes that youve seen, or just certain attacks. As a design team, when we communicate to each other ideas on different things, we will tend to bring up some of these.In other words, when the Mortal Kombat dev team is batting around ideas, the developers will use shared knowledge of action films like Terminator 2 as shorthand. So identifying iconic moves from the T-1000, like his finger-stab and arm blades, gives the games designers a foundation to work from. (For MK1s new Kameo Fighter Madam Bo, the team drew from kung fu movies, like Stephen Chows Kung Fu Hustle, for her meme-worthy shoe-slap attack.)In many ways, what well do is start from the reference and come up with rough ideas for either special moves, Nicastro says, or in some cases, when were trying to capture the essence of the character or the visual presentation of the character, well drop in images or videos of things that weve seen. Well start with things that are very critical or we feel are keys to the character.While part of the T-1000s moveset was already based on James Camerons movie, actually implementing the liquid-metal Terminator was a much more difficult task.Its a character that weve always wanted to do, even going back to previous games, Nicastro says. We really couldnt in the past; it was just not something that was technically feasible to do in the best possible way until MK1, where weve really made, like, a quantum leap with our engine, tools, and technology. That process involved weeks of concept and [months of] development time. Theres a lot of iteration between the art department and design and the gameplay teams. In the case of T-1000, [its] one of the most challenging characters that weve worked on, especially as a guest character.But, Nicastro says, there was so much source material with the liquid metal that fit the gameplay plan that we had in mind for him.Two moves in particular that stand out as strong implementations of the T-1000s skill set include his throw and a drop kick. When the T-1000 throws an opponent in MK1, that move is based on a trick from Terminator 2s steel mill scene: Arnolds T-800 throws the T-1000 against a wall, and rather than turning around, the liquid-metal machine simply reshapes his body to face his opponent. MK1s T-1000 can also quickly transform into a big metal teardrop to kick his opponent, a move seen in the hospital elevator escape scene in T2.I think the visual presentation comes across in a very strong way with this character, Nicastro adds. The way that you can start a combo string, turn into liquid metal, go up in the air, knock [your opponent] down, turn into a liquid metal, and then go through the ground and pop up and then start another string the transition from your human to liquid form when youre pulling off combos in the game is probably, to me, one of the most impressive things.Nicastro points out that the T-1000 breaks a lot of the rules of the game. Where other characters can have their bones broken or their entrails torn out, bleeding profusely and suffering greatly in the process, the T-1000 is basically a metal blob that doesnt feel pain.When you hit him with a super move, he has to look like a liquid shape, Nicastro says, so for every character that hits him with a super, we had to go back and make separate versions of a T-1000 version that looked correct.Adding a special case like the T-1000, unsurprisingly, requires a lot of work. In the end, Nicastro says, hundreds of people were involved in some capacity in bringing Robert Patricks Terminator to Mortal Kombat 1.Cinema artists, mocap, a mocap actor, many animators, [and] many designers were involved, Nicastro says. Theres a primary designer that kind of drives that effort, and that designer, he did an incredible job, but you have also other designers that help out. And then you have the audio team, the art and effects team, the different tech teams. [The T-1000] has a lot of special cases in the game, so it kind of brought in even more resources than a normal character would [because] there are more problems to solve.Mortal Kombat 1 players can see the fruits of that labor in the game now. The T-1000 was released last week for owners of the games Khaos Reigns expansion, and is available now to purchase la carte.
    0 Comentários ·0 Compartilhamentos ·55 Visualizações
  • Ubisoft breaks off Assassins Creed, Far Cry, and Rainbow Six into a new Tencent-backed unit
    www.polygon.com
    Ubisofts biggest games Assassins Creed, Far Cry, and Rainbow Six will be split off into a separate entity with a 1.16 billion ($1.3 billion) investment from Chinese tech giant Tencent, the company announced on Thursday.The new subsidiary will include every Ubisoft team currently working on those three franchises in Montral, Quebec, Sherbrooke, Saguenay, Barcelona, and Sofia, according to the news release. There will be a dedicated leadership team, supervised by a board of directors overseeing the unit as it focuses on nurturing the development of Ubisofts most high-profile games.Ubisoft says the unit will drive further increases in quality of narrative solo experiences, expand multiplayer offerings with increased frequency of content releases, introduce free-to-play touchpoints, and integrate more social features, for its games.Tencents investment will give it a 25% stake in the new unit and is expected to go through by the end of the year. Ubisoft has faced financial troubles over the last few years, and according to todays news release, the company will use the Tencent investment to pay off some of its debts and support other franchises. According to IGN, an investor in the company earlier this month claimed Ubisoft had been holding secret talks with major publishers like Microsoft and Electronic Arts about acquiring its major franchises.Ubisofts new unit notably leaves out several other franchises it has, including Just Dance, Rayman, Rabbids, and Watch Dogs. The news release specifically mentions that Ghost Recon and The Division the other Tom Clancy games will be part of its new focus on nurturing the development of iconic franchises alongside the creation of the subsidiary.
    0 Comentários ·0 Compartilhamentos ·57 Visualizações
  • Adaptive Video Streaming With Dash.js In React
    smashingmagazine.com
    I was recently tasked with creating video reels that needed to be played smoothly under a slow network or on low-end devices. I started with the native HTML5 <video> tag but quickly hit a wall it just doesnt cut it when connections are slow or devices are underpowered.After some research, I found that adaptive bitrate streaming was the solution I needed. But heres the frustrating part: finding a comprehensive, beginner-friendly guide was so difficult. The resources on MDN and other websites were helpful but lacked the end-to-end tutorial I was looking for.Thats why Im writing this article: to provide you with the step-by-step guide I wish I had found. Ill bridge the gap between writing FFmpeg scripts, encoding video files, and implementing the DASH-compatible video player (Dash.js) with code examples you can follow.Going Beyond The Native HTML5 <video> TagYou might be wondering why you cant simply rely on the HTML <video> element. Theres a good reason for that. Lets compare the difference between a native <video> element and adaptive video streaming in browsers.Progressive DownloadWith progressive downloading, your browser downloads the video file linearly from the server over HTTP and starts playback as long as it has buffered enough data. This is the default behavior of the <video> element.<video src="rabbit320.mp4" />When you play the video, check your browsers network tab, and youll see multiple requests with the 206 Partial Content status code.It uses HTTP 206 Range Requests to fetch the video file in chunks. The server sends specific byte ranges of the video to your browser. When you seek, the browser will make more range requests asking for new byte ranges (e.g., Give me bytes 1,000,0002,000,000). In other words, it doesnt fetch the entire file all at once. Instead, it delivers partial byte ranges from the single MP4 video file on demand. This is still considered a progressive download because only a single file is fetched over HTTP there is no bandwidth or quality adaptation.If the server or browser doesnt support range requests, the entire video file will be downloaded in a single request, returning a 200 OK status code. In that case, the video can only begin playing once the entire file has finished downloading. The problems? If youre on a slow connection trying to watch high-resolution video, youll be waiting a long time before playback starts.Adaptive Bitrate StreamingInstead of serving one single video file, adaptive bitrate (ABR) streaming splits the video into multiple segments at different bitrates and resolutions. During playback, the ABR algorithm will automatically select the highest quality segment that can be downloaded in time for smooth playback based on your network connectivity, bandwidth, and other device capabilities. It continues adjusting throughout to adapt to changing conditions.This magic happens through two key browser technologies:Media Source Extension (MSE)It allows passing a MediaSource object to the src attribute in <video>, enabling sending multiple SourceBuffer objects that represent video segments.<video src="blob:https://example.com/6e31fe2a-a0a8-43f9-b415-73dc02985892" />Media Capabilities APIIt provides information on your devices video decoding and encoding abilities, enabling ABR to make informed decisions about which resolution to deliver.Together, they enable the core functionality of ABR, serving video chunks optimized for your specific device limitations in real time.Streaming Protocols: MPEG-DASH Vs. HLSAs mentioned above, to stream media adaptively, a video is split into chunks at different quality levels across various time points. We need to facilitate the process of switching between these segments adaptively in real time. To achieve this, ABR streaming relies on specific protocols. The two most common ABR protocols are:MPEG-DASH,HTTP Live Streaming (HLS).Both of these protocols utilize HTTP to send video files. Hence, they are compatible with HTTP web servers.This article focuses on MPEG-DASH. However, its worth noting that DASH isnt supported by Apple devices or browsers, as mentioned in Muxs article.MPEG-DASHMPEG-DASH enables adaptive streaming through:A Media Presentation Description (MPD) fileThis XML manifest file contains information on how to select and manage streams based on adaptive rules.Segmented Media FilesVideo and audio files are divided into segments at different resolutions and durations using MPEG-DASH-compliant codecs and formats.On the client side, a DASH-compliant video player reads the MPD file and continuously monitors network bandwidth. Based on available bandwidth, the player selects the appropriate bitrate and requests the corresponding video chunk. This process repeats throughout playback, ensuring smooth, optimal quality.Now that you understand the fundamentals, lets build our adaptive video player!Steps To Build an Adaptive Bitrate Streaming Video PlayerHeres the plan:Transcode the MP4 video into audio and video renditions at different resolutions and bitrates with FFmpeg.Generate an MPD file with FFmpeg.Serve the output files from the server.Build the DASH-compatible video player to play the video.Install FFmpegFor macOS users, install FFmpeg using Brew by running the following command in your terminal:brew install ffmpegFor other operating systems, please refer to FFmpegs documentation.Generate Audio RenditionNext, run the following script to extract the audio track and encode it in WebM format for DASH compatibility:ffmpeg -i "input_video.mp4" -vn -acodec libvorbis -ab 128k "audio.webm"-i "input_video.mp4": Specifies the input video file.-vn: Disables the video stream (audio-only output).-acodec libvorbis: Uses the libvorbis codec to encode audio.-ab 128k: Sets the audio bitrate to 128 kbps."audio.webm": Specifies the output audio file in WebM format.Generate Video RenditionsRun this script to create three video renditions with varying resolutions and bitrates. The largest resolution should match the input file size. For example, if the input video is 5761024 at 30 frames per second (fps), the script generates renditions optimized for vertical video playback.ffmpeg -i "input_video.mp4" -c:v libvpx-vp9 -keyint_min 150 -g 150 \-tile-columns 4 -frame-parallel 1 -f webm \-an -vf scale=576:1024 -b:v 1500k "input_video_576x1024_1500k.webm" \-an -vf scale=480:854 -b:v 1000k "input_video_480x854_1000k.webm" \-an -vf scale=360:640 -b:v 750k "input_video_360x640_750k.webm"-c:v libvpx-vp9: Uses the libvpx-vp9 as the VP9 video encoder for WebM.-keyint_min 150 and -g 150: Set a 150-frame keyframe interval (approximately every 5 seconds at 30 fps). This allows bitrate switching every 5 seconds.-tile-columns 4 and -frame-parallel 1: Optimize encoding performance through parallel processing.-f webm: Specifies the output format as WebM.In each rendition:-an: Excludes audio (video-only output).-vf scale=576:1024: Scales the video to a resolution of 576x1024 pixels.-b:v 1500k: Sets the video bitrate to 1500 kbps.WebM is chosen as the output format, as they are smaller in size and optimized yet widely compatible with most web browsers.Generate MPD Manifest FileCombine the video renditions and audio track into a DASH-compliant MPD manifest file by running the following script:ffmpeg \ -f webm_dash_manifest -i "input_video_576x1024_1500k.webm" \ -f webm_dash_manifest -i "input_video_480x854_1000k.webm" \ -f webm_dash_manifest -i "input_video_360x640_750k.webm" \ -f webm_dash_manifest -i "audio.webm" \ -c copy \ -map 0 -map 1 -map 2 -map 3 \ -f webm_dash_manifest \ -adaptation_sets "id=0,streams=0,1,2 id=1,streams=3" \ "input_video_manifest.mpd"-f webm_dash_manifest -i "": Specifies the inputs so that the ASH video player will switch between them dynamically based on network conditions.-map 0 -map 1 -map 2 -map 3: Includes all video (0, 1, 2) and audio (3) in the final manifest.-adaptation_sets: Groups streams into adaptation sets:id=0,streams=0,1,2: Groups the video renditions into a single adaptation set.id=1,streams=3: Assigns the audio track to a separate adaptation set.The resulting MPD file (input_video_manifest.mpd) describes the streams and enables adaptive bitrate streaming in MPEG-DASH.<?xml version="1.0" encoding="UTF-8"?><MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:DASH:schema:MPD:2011" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011" type="static" mediaPresentationDuration="PT81.166S" minBufferTime="PT1S" profiles="urn:mpeg:dash:profile:webm-on-demand:2012"> <Period id="0" start="PT0S" duration="PT81.166S"> <AdaptationSet id="0" mimeType="video/webm" codecs="vp9" lang="eng" bitstreamSwitching="true" subsegmentAlignment="false" subsegmentStartsWithSAP="1"> <Representation id="0" bandwidth="1647920" width="576" height="1024"> <BaseURL>input_video_576x1024_1500k.webm</BaseURL> <SegmentBase indexRange="16931581-16931910"> <Initialization range="0-645" /> </SegmentBase> </Representation> <Representation id="1" bandwidth="1126977" width="480" height="854"> <BaseURL>input_video_480x854_1000k.webm</BaseURL> <SegmentBase indexRange="11583599-11583986"> <Initialization range="0-645" /> </SegmentBase> </Representation> <Representation id="2" bandwidth="843267" width="360" height="640"> <BaseURL>input_video_360x640_750k.webm</BaseURL> <SegmentBase indexRange="8668326-8668713"> <Initialization range="0-645" /> </SegmentBase> </Representation> </AdaptationSet> <AdaptationSet id="1" mimeType="audio/webm" codecs="vorbis" lang="eng" audioSamplingRate="44100" bitstreamSwitching="true" subsegmentAlignment="true" subsegmentStartsWithSAP="1"> <Representation id="3" bandwidth="89219"> <BaseURL>audio.webm</BaseURL> <SegmentBase indexRange="921727-922055"> <Initialization range="0-4889" /> </SegmentBase> </Representation> </AdaptationSet> </Period></MPD>After completing these steps, youll have:Three video renditions (576x1024, 480x854, 360x640),One audio track, andAn MPD manifest file.input_video.mp4audio.webminput_video_576x1024_1500k.webminput_video_480x854_1000k.webminput_video_360x640_750k.webminput_video_manifest.mpdThe original video input_video.mp4 should also be kept to serve as a fallback video source later.Serve The Output FilesThese output files can now be uploaded to cloud storage (e.g., AWS S3 or Cloudflare R2) for playback. While they can be served directly from a local folder, I highly recommend storing them in cloud storage and leveraging a CDN to cache the assets for better performance. Both AWS and Cloudflare support HTTP range requests out of the box.Building The DASH-Compatible Video Player In ReactTheres nothing like a real-world example to help understand how everything works. There are different ways we can implement a DASH-compatible video player, but Ill focus on an approach using React.First, install the Dash.js npm package by running:npm i dashjsNext, create a component called <DashVideoPlayer /> and initialize the Dash MediaPlayer instance by pointing it to the MPD file when the component mounts. The ref callback function runs upon the component mounting, and within the callback function, playerRef will refer to the actual Dash MediaPlayer instance and be bound with event listeners. We also include the original MP4 URL in the <source> element as a fallback if the browser doesnt support MPEG-DASH.If youre using Next.js app router, remember to add the use client directive to enable client-side hydration, as the video player is only initialized on the client side.Here is the full example:import dashjs from 'dashjs'import { useCallback, useRef } from 'react'export const DashVideoPlayer = () => { const playerRef = useRef() const callbackRef = useCallback((node) => { if (node !== null) { playerRef.current = dashjs.MediaPlayer().create() playerRef.current.initialize(node, "https://example.com/uri/to/input_video_manifest.mpd", false) playerRef.current.on('canPlay', () => { // upon video is playable }) playerRef.current.on('error', (e) => { // handle error }) playerRef.current.on('playbackStarted', () => { // handle playback started }) playerRef.current.on('playbackPaused', () => { // handle playback paused }) playerRef.current.on('playbackWaiting', () => { // handle playback buffering }) } },[]) return ( <video ref={callbackRef} width={310} height={548} controls> <source src="https://example.com/uri/to/input_video.mp4" type="video/mp4" /> Your browser does not support the video tag. </video> )}ResultObserve the changes in the video file when the network connectivity is adjusted from Fast 4G to 3G using Chrome DevTools. It switches from 480p to 360p, showing how the experience is optimized for more or less available bandwidth.ConclusionThats it! We just implemented a working DASH-compatible video player in React to establish a video with adaptive bitrate streaming. Again, the benefits of this are rooted in performance. When we adopt ABR streaming, were requesting the video in smaller chunks, allowing for more immediate playback than wed get if we needed to fully download the video file first. And weve done it in a way that supports multiple versions of the same video, allowing us to serve the best format for the users device.ReferencesHttp Range Request And MP4 Video Play In Browser, Zeng XuSetting up adaptive streaming media sources (Mozilla Developer Network)DASH Adaptive Streaming for HTML video (Mozilla Developer Network)
    0 Comentários ·0 Compartilhamentos ·67 Visualizações