<description>&lt;p class="has-line-data" data-line-start="0" data-line-end="1"&gt; Scott and Wes break down the tech behind video streaming for the web, from transcoding and variants to CDN and access control. They also share insights on tools like Mux, Cloudflare Stream, and ffmpeg, plus tips for managing bandwidth, hosting, and costs.&lt;/p&gt; &lt;h3 class="code-line" data-line-start="2" data-line-end="3"&gt;&lt;a id= "Show_Notes_2"&gt;&lt;/a&gt;Show Notes&lt;/h3&gt; &lt;ul&gt; &lt;li class="has-line-data" data-line-start="4" data-line-end="5"&gt; &lt;strong&gt;&lt;a href="#t=00:00"&gt;00:00&lt;/a&gt;&lt;/strong&gt; Welcome to Syntax!&lt;/li&gt; &lt;li class="has-line-data" data-line-start="5" data-line-end="6"&gt; &lt;strong&gt;&lt;a href="#t=00:50"&gt;00:50&lt;/a&gt;&lt;/strong&gt; Brought to you by &lt;a href="https://sentry.io/syntax"&gt;Sentry.io&lt;/a&gt;.&lt;/li&gt; &lt;li class="has-line-data" data-line-start="6" data-line-end="7"&gt; &lt;strong&gt;&lt;a href="#t=01:15"&gt;01:15&lt;/a&gt;&lt;/strong&gt; The history of video streaming.&lt;/li&gt; &lt;li class="has-line-data" data-line-start="7" data-line-end="8"&gt; &lt;strong&gt;&lt;a href="#t=02:10"&gt;02:10&lt;/a&gt;&lt;/strong&gt; How video streaming works: The Tech.&lt;/li&gt; &lt;li class="has-line-data" data-line-start="8" data-line-end="9"&gt; &lt;strong&gt;&lt;a href="#t=03:54"&gt;03:54&lt;/a&gt;&lt;/strong&gt; How video streaming works: Transcoding.&lt;/li&gt; &lt;li class="has-line-data" data-line-start="9" data-line-end="15"&gt; &lt;strong&gt;&lt;a href="#t=06:37"&gt;06:37&lt;/a&gt;&lt;/strong&gt; How video streaming works: Variants. &lt;ul&gt; &lt;li class="has-line-data" data-line-start="10" data-line-end="11"&gt; &lt;a href= "https://github.com/wesbos/R2-video-streaming"&gt;ffmpeg&lt;/a&gt;.&lt;/li&gt; &lt;li class="has-line-data" data-line-start="11" data-line-end="12"&gt; &lt;a href="https://github.com/wesbos/R2-video-streaming"&gt;Wes’ R2-video-streaming&lt;/a&gt;.&lt;/li&gt; &lt;li class="has-line-data" data-line-start="12" data-line-end="13"&gt; &lt;a href= "https://github.com/wesbos/R2-video-streaming/blob/main/transcode.ts"&gt; Wes’ Transcoding&lt;/a&gt;.&lt;/li&gt; &lt;li class="has-line-data" data-line-start="13" data-line-end="14"&gt; &lt;a href="https://github.com/ytdl-org/youtube-dl"&gt;YT-DL&lt;/a&gt;.&lt;/li&gt; &lt;li class="has-line-data" data-line-start="14" data-line-end="15"&gt; &lt;a href="https://github.com/yt-dlp/yt-dlp"&gt;YT-DLP&lt;/a&gt;.&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li class="has-line-data" data-line-start="15" data-line-end="16"&gt; &lt;strong&gt;&lt;a href="#t=13:13"&gt;13:13&lt;/a&gt;&lt;/strong&gt; Dynamic ad insertion.&lt;/li&gt; &lt;li class="has-line-data" data-line-start="16" data-line-end="18"&gt; &lt;strong&gt;&lt;a href="#t=14:29"&gt;14:29&lt;/a&gt;&lt;/strong&gt; Bandwidth and hosting. &lt;ul&gt; &lt;li class="has-line-data" data-line-start="17" data-line-end="18"&gt; &lt;a href="https://www.mux.com/"&gt;Mux&lt;/a&gt;.&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li class="has-line-data" data-line-start="18" data-line-end="19"&gt; &lt;strong&gt;&lt;a href="#t=18:03"&gt;18:03&lt;/a&gt;&lt;/strong&gt; &lt;a href= "https://www.cloudflare.com/"&gt;Cloudflare&lt;/a&gt;.&lt;/li&gt; &lt;li class="has-line-data" data-line-start="19" data-line-end="22"&gt; &lt;strong&gt;&lt;a href="#t=19:13"&gt;19:13&lt;/a&gt;&lt;/strong&gt; The costs. &lt;ul&gt; &lt;li class="has-line-data" data-line-start="20" data-line-end="21"&gt; &lt;a href="https://x.com/wesbos/status/1852398973769613727"&gt;Wes Bos Tweet Cloudflare TOS&lt;/a&gt;.&lt;/li&gt; &lt;li class="has-line-data" data-line-start="21" data-line-end="22"&gt; &lt;a href= "https://x.com/steve_tenuto/status/1854919704483434763"&gt;Steve Tenuto tweet&lt;/a&gt;.&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li class="has-line-data" data-line-start="22" data-line-end="24"&gt; &lt;strong&gt;&lt;a href="#t=25:39"&gt;25:39&lt;/a&gt;&lt;/strong&gt; Media players. &lt;ul&gt; &lt;li class="has-line-data" data-line-start="23" data-line-end="24"&gt; &lt;a href="https://www.media-chrome.org/docs/en/get-started"&gt;Media Chrome&lt;/a&gt;.&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li class="has-line-data" data-line-start="24" data-line-end="25"&gt; &lt;strong&gt;&lt;a href="#t=29:42"&gt;29:42&lt;/a&gt;&lt;/strong&gt; CDN.&lt;/li&gt; &lt;li class="has-line-data" data-line-start="25" data-line-end="26"&gt; &lt;strong&gt;&lt;a href="#t=32:04"&gt;32:04&lt;/a&gt;&lt;/strong&gt; Access control.&lt;/li&gt; &lt;li class="has-line-data" data-line-start="26" data-line-end="33"&gt; &lt;strong&gt;&lt;a href="#t=33:35"&gt;33:35&lt;/a&gt;&lt;/strong&gt; Solutions. &lt;ul&gt; &lt;li class="has-line-data" data-line-start="27" data-line-end="28"&gt; &lt;a href="https://www.mux.com/"&gt;Mux&lt;/a&gt;.&lt;/li&gt; &lt;li class="has-line-data" data-line-start="28" data-line-end="29"&gt; &lt;a href="https://developers.cloudflare.com/stream/"&gt;Cloudflare Stream&lt;/a&gt;.&lt;/li&gt; &lt;li class="has-line-data" data-line-start="29" data-line-end="30"&gt; &lt;a href="https://bunny.net/stream/"&gt;Bunny.net Stream&lt;/a&gt;&lt;/li&gt; &lt;li class="has-line-data" data-line-start="30" data-line-end="31"&gt; &lt;a href="https://aws.amazon.com/mediaconvert/"&gt;AWS Media Convert&lt;/a&gt;.&lt;/li&gt; &lt;li class="has-line-data" data-line-start="31" data-line-end="32"&gt; &lt;a href="https://cloudinary.com/"&gt;Cloudinary&lt;/a&gt;.&lt;/li&gt; &lt;li class="has-line-data" data-line-start="32" data-line-end="33"&gt; &lt;a href="https://bitmovin.com/"&gt;Bitmovin&lt;/a&gt;.&lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li class="has-line-data" data-line-start="33" data-line-end="34"&gt; &lt;strong&gt;&lt;a href="#t=41:55"&gt;41:55&lt;/a&gt;&lt;/strong&gt; Some other features.&lt;/li&gt; &lt;li class="has-line-data" data-line-start="34" data-line-end="37"&gt; &lt;strong&gt;&lt;a href="#t=45:47"&gt;45:47&lt;/a&gt;&lt;/strong&gt; Sick Picks &amp; Shameless Plugs.&lt;/li&gt; &lt;/ul&gt; &lt;h3 class="code-line" data-line-start="37" data-line-end="38"&gt; &lt;a id="Sick_Picks_37"&gt;&lt;/a&gt;Sick Picks&lt;/h3&gt; &lt;ul&gt; &lt;li class="has-line-data" data-line-start="39" data-line-end="40"&gt; Scott: &lt;a href="https://amzn.to/3CquTcZ"&gt;Anker MagGo&lt;/a&gt;.&lt;/li&gt; &lt;li class="has-line-data" data-line-start="40" data-line-end="42"&gt; Wes: &lt;a href= "https://appahead.studio/apps/polycapture/"&gt;PolyCapture&lt;/a&gt;.&lt;/li&gt; &lt;/ul&gt; &lt;h3 class="code-line" data-line-start="42" data-line-end="43"&gt; &lt;a id="Shameless_Plugs_42"&gt;&lt;/a&gt;Shameless Plugs&lt;/h3&gt; &lt;ul&gt; &lt;li class="has-line-data" data-line-start="44" data-line-end="46"&gt; Scott: &lt;a href="www.youtube.com/@syntaxfm"&gt;Syntax on YouTube&lt;/a&gt;.&lt;/li&gt; &lt;/ul&gt; &lt;h3 class="code-line" data-line-start="46" data-line-end="47"&gt; &lt;a id="Hit_us_up_on_Socials_46"&gt;&lt;/a&gt;Hit us up on Socials!&lt;/h3&gt; &lt;p class="has-line-data" data-line-start="48" data-line-end="49"&gt; Syntax: &lt;a href="https://twitter.com/syntaxfm"&gt;X&lt;/a&gt; &lt;a href= "https://www.instagram.com/syntax_fm/"&gt;Instagram&lt;/a&gt; &lt;a href= "https://www.tiktok.com/@syntaxfm"&gt;Tiktok&lt;/a&gt; &lt;a href= "https://www.linkedin.com/company/96077407/admin/feed/posts/"&gt;LinkedIn&lt;/a&gt; &lt;a href="https://www.threads.net/@syntax_fm"&gt;Threads&lt;/a&gt;&lt;/p&gt; &lt;p class="has-line-data" data-line-start="50" data-line-end="51"&gt; Wes: &lt;a href="https://twitter.com/wesbos"&gt;X&lt;/a&gt; &lt;a href= "https://www.instagram.com/wesbos/"&gt;Instagram&lt;/a&gt; &lt;a href= "https://www.tiktok.com/@wesbos"&gt;Tiktok&lt;/a&gt; &lt;a href= "https://www.linkedin.com/in/wesbos/"&gt;LinkedIn&lt;/a&gt; &lt;a href= "https://www.threads.net/@wesbos"&gt;Threads&lt;/a&gt;&lt;/p&gt; &lt;p class="has-line-data" data-line-start="52" data-line-end="53"&gt; Scott: &lt;a href="https://twitter.com/stolinski"&gt;X&lt;/a&gt; &lt;a href= "https://www.instagram.com/stolinski/"&gt;Instagram&lt;/a&gt; &lt;a href= "https://www.tiktok.com/@stolinski"&gt;Tiktok&lt;/a&gt; &lt;a href= "https://www.linkedin.com/in/stolinski/"&gt;LinkedIn&lt;/a&gt; &lt;a href= "https://www.threads.net/@stolinski"&gt;Threads&lt;/a&gt;&lt;/p&gt; &lt;p class="has-line-data" data-line-start="54" data-line-end="55"&gt; Randy: &lt;a href="https://twitter.com/randyrektor"&gt;X&lt;/a&gt; &lt;a href= "https://www.instagram.com/randyrektor/"&gt;Instagram&lt;/a&gt; &lt;a href= "https://www.youtube.com/@randyrektor"&gt;YouTube&lt;/a&gt; &lt;a href= "https://www.threads.net/@randyrektor"&gt;Threads&lt;/a&gt;&lt;/p&gt;</description>

Syntax - Tasty Web Development Treats

Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

859: Streaming Video in 2025

DEC 11, 202451 MIN
Syntax - Tasty Web Development Treats

859: Streaming Video in 2025

DEC 11, 202451 MIN

Description

Scott and Wes break down the tech behind video streaming for the web, from transcoding and variants to CDN and access control. They also share insights on tools like Mux, Cloudflare Stream, and ffmpeg, plus tips for managing bandwidth, hosting, and costs.

Show Notes Sick Picks Shameless Plugs Hit us up on Socials!

Syntax: X Instagram Tiktok LinkedIn Threads

Wes: X Instagram Tiktok LinkedIn Threads

Scott: X Instagram Tiktok LinkedIn Threads

Randy: X Instagram YouTube Threads