<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Gstreamer on Salt and Pepper</title><link>https://wow2006.github.io/series/gstreamer/</link><description>Recent content in Gstreamer on Salt and Pepper</description><generator>Hugo</generator><language>en</language><lastBuildDate>Thu, 11 Jun 2026 22:53:50 +0300</lastBuildDate><atom:link href="https://wow2006.github.io/series/gstreamer/index.xml" rel="self" type="application/rss+xml"/><item><title>Create a Smaller Video File with H.264 Encoding</title><link>https://wow2006.github.io/posts/gstreamer/creating-your-first-video-file-with-gstreamer/</link><pubDate>Thu, 11 Jun 2026 22:53:50 +0300</pubDate><guid>https://wow2006.github.io/posts/gstreamer/creating-your-first-video-file-with-gstreamer/</guid><description>&lt;p>In the previous post, we created our first video file using GStreamer. The pipeline worked correctly, but there was one major problem: the generated file was very large.&lt;/p>
&lt;p>The reason is simple. We stored every video frame as raw, uncompressed image data. While this is easy to understand, it is highly inefficient for storage and distribution.&lt;/p>
&lt;p>In this post, we will introduce video compression using the H.264 codec and see how dramatically it reduces file size.&lt;/p></description></item><item><title>Part 1: Creating Your First Video File with GStreamer</title><link>https://wow2006.github.io/posts/gstreamer/create-first-video-file/</link><pubDate>Mon, 08 Jun 2026 21:34:56 +0300</pubDate><guid>https://wow2006.github.io/posts/gstreamer/create-first-video-file/</guid><description>&lt;p>In the previous post, we displayed a test video on the screen using GStreamer. This time, we will take the next step and create our first video file.&lt;/p>
&lt;p>We will start with a slightly modified version of the command from the previous article:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>gst-launch-1.0 videotestsrc num-buffers&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">90&lt;/span> ! &lt;span style="color:#ae81ff">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">&lt;/span>video/x-raw,width&lt;span style="color:#f92672">=&lt;/span>640,height&lt;span style="color:#f92672">=&lt;/span>480,framerate&lt;span style="color:#f92672">=&lt;/span>30/1 ! &lt;span style="color:#ae81ff">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">&lt;/span>autovideosink
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="understanding-caps">Understanding Caps&lt;/h2>
&lt;p>You may notice something new in the pipeline:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>video/x-raw,width=640,height=480,framerate=30/1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This is called &lt;strong>Caps&lt;/strong> (Capabilities).&lt;/p>
&lt;p>Caps describe the type of media flowing between elements. They define properties such as:&lt;/p></description></item><item><title>Part 0: Helloworld Gstreamer</title><link>https://wow2006.github.io/posts/gstreamer/helloworld-gstreamer/</link><pubDate>Fri, 05 Jun 2026 17:54:49 +0300</pubDate><guid>https://wow2006.github.io/posts/gstreamer/helloworld-gstreamer/</guid><description>&lt;p>In this series, we will have a beginner-friendly introduction to the world of GStreamer.&lt;/p>
&lt;p>GStreamer is a powerful open-source multimedia framework used to build streaming media applications. It allows developers to create pipelines that process, transform, and transmit audio, video, and other multimedia data.&lt;/p>
&lt;p>My primary focus throughout this series will be video processing. Since GStreamer is built on top of GLib, I will also highlight the differences between GStreamer APIs and GLib APIs whenever they appear. Understanding this distinction early will help avoid confusion when reading examples and documentation.&lt;/p></description></item></channel></rss>