<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.1.1">Jekyll</generator><link href="https://subtitlecomposer.kde.org/news/feed.xml" rel="self" type="application/atom+xml" /><link href="https://subtitlecomposer.kde.org/" rel="alternate" type="text/html" /><updated>2025-09-16T09:57:29+00:00</updated><id>https://subtitlecomposer.kde.org/news/feed.xml</id><title type="html">Subtitle Composer</title><subtitle>Subtitle Composer: An open source text-based subtitle editor
</subtitle><entry><title type="html">Subtitle Composer 0.8.2 released</title><link href="https://subtitlecomposer.kde.org/2025/09/14/subtitle-composer-0.8.2-released.html" rel="alternate" type="text/html" title="Subtitle Composer 0.8.2 released" /><published>2025-09-14T22:15:57+00:00</published><updated>2025-09-14T22:15:57+00:00</updated><id>https://subtitlecomposer.kde.org/2025/09/14/subtitle-composer-0.8.2-released</id><content type="html" xml:base="https://subtitlecomposer.kde.org/2025/09/14/subtitle-composer-0.8.2-released.html"><![CDATA[<p>I’m happy to announce the 0.8.2 release of Subtitle Composer.</p>

<p>This release contains bugfixes and few improvements including:</p>

<ul>
  <li>Fixed issues and crashes with newer Qt6 versions</li>
  <li>Fixed Waveform and VideoPlayer paint issues</li>
  <li>Fixed PGS subtitle mime type</li>
  <li>Improved Wayland compatibility</li>
  <li>Improved GoogleCloudEngine translations</li>
  <li>Added configurable whitespace detection to VobSub import</li>
  <li>Replaced deprecated FFmpeg channel code</li>
  <li>Require FFmpeg &gt;= 5.1.5</li>
</ul>

<p>As usual all binaries are available from <a href="/download.html">download page</a>.</p>

<p>Source tarball can be downloaded from <a href="https://download.kde.org/stable/subtitlecomposer/">download.kde.org</a>.</p>

<p class="author">— Mladen</p>]]></content><author><name></name></author><summary type="html"><![CDATA[I’m happy to announce the 0.8.2 release of Subtitle Composer.]]></summary></entry><entry><title type="html">Subtitle Composer 0.8.1 released</title><link href="https://subtitlecomposer.kde.org/2024/06/07/subtitle-composer-0.8.1-released.html" rel="alternate" type="text/html" title="Subtitle Composer 0.8.1 released" /><published>2024-06-07T22:15:57+00:00</published><updated>2024-06-07T22:15:57+00:00</updated><id>https://subtitlecomposer.kde.org/2024/06/07/subtitle-composer-0.8.1-released</id><content type="html" xml:base="https://subtitlecomposer.kde.org/2024/06/07/subtitle-composer-0.8.1-released.html"><![CDATA[<p>I’m happy to announce the 0.8.1 release of Subtitle Composer.</p>

<p>This release contains lots of bugfixes and few improvements including:</p>

<ul>
  <li>Fixed (rare) memory issues and crashes</li>
  <li>Fixed crashes on waveform widget</li>
  <li>Fixed video player rendering in Qt 6.7</li>
  <li>Fixed scripts manager assert failures</li>
  <li>Fixed inability to view non-script files in scripts manager</li>
  <li>Fixed seeking in some media formats</li>
  <li>Fixed video player subtitle rendering</li>
  <li>Fixed broken rendering on hi-res videos</li>
  <li>Fixed HDR video rendering (SMPTE-ST-2084 gamma transfer)</li>
  <li>Added check for maximum number of characters per line</li>
  <li>Added MinT translate engine</li>
  <li>Improved translation support and UI</li>
  <li>Improved video player scaling</li>
  <li>Dropped KIO file operations</li>
</ul>

<p>As usual all binaries are available from <a href="/download.html">download page</a>.</p>

<p>Source tarball can be downloaded from <a href="https://download.kde.org/stable/subtitlecomposer/">download.kde.org</a>.</p>

<p class="author">— Mladen</p>]]></content><author><name></name></author><summary type="html"><![CDATA[I’m happy to announce the 0.8.1 release of Subtitle Composer.]]></summary></entry><entry><title type="html">Subtitle Composer 0.8.0 released</title><link href="https://subtitlecomposer.kde.org/2023/11/06/subtitle-composer-0.8.0-released.html" rel="alternate" type="text/html" title="Subtitle Composer 0.8.0 released" /><published>2023-11-06T19:21:40+00:00</published><updated>2023-11-06T19:21:40+00:00</updated><id>https://subtitlecomposer.kde.org/2023/11/06/subtitle-composer-0.8.0-released</id><content type="html" xml:base="https://subtitlecomposer.kde.org/2023/11/06/subtitle-composer-0.8.0-released.html"><![CDATA[<p>I’m happy to announce the 0.8.0 release of Subtitle Composer.</p>

<p>This release contains lots of bugfixes and new features including:</p>

<ul>
  <li>Automatic translations using DeepL or Google Cloud</li>
  <li>WebVTT format support</li>
  <li>Subtitle positioning UI and support</li>
  <li>Subtitle class/comments/voice UI and support</li>
  <li>Improved rich text editing/preview</li>
  <li>Rich text rendering on waveform/video/editors</li>
  <li>Qt6 support</li>
  <li>FFmpeg 5 support</li>
  <li>Subtitle lines are always time sorted; remove sort lines menu action</li>
  <li>Replaced Kross with QJSEngine, removed ruby and python support</li>
  <li>Improved script manager and tools menu</li>
</ul>

<p>As usual all binaries are available from <a href="/download.html">download page</a>.</p>

<p>Source tarball can be downloaded from <a href="https://download.kde.org/stable/subtitlecomposer/">download.kde.org</a>.</p>

<p class="author">— Mladen</p>]]></content><author><name></name></author><summary type="html"><![CDATA[I’m happy to announce the 0.8.0 release of Subtitle Composer.]]></summary></entry><entry><title type="html">WebVTT support, CSS and more</title><link href="https://subtitlecomposer.kde.org/2022/11/12/webvtt-support.html" rel="alternate" type="text/html" title="WebVTT support, CSS and more" /><published>2022-11-12T20:33:00+00:00</published><updated>2022-11-12T20:33:00+00:00</updated><id>https://subtitlecomposer.kde.org/2022/11/12/webvtt-support</id><content type="html" xml:base="https://subtitlecomposer.kde.org/2022/11/12/webvtt-support.html"><![CDATA[<p>I’m happy to announce that the support for WebVTT format and all the nice features that it brings is finished.</p>

<p>Along with reading and writing of WebVTT subtitles, Subtitle Composer can now fully understand CSS - Cascading Style Sheets, subtitle positions and alignment.</p>

<p>A new panel has been added that allows syntax-higlighted CSS editing and subtitle position/alignment adjustment. Of course all edits are visible everywhere in app in realtime.</p>

<p>Some user interface elements are still being worked on and should be available in following days, in particular:</p>
<ul>
  <li>Buttons for assigning class/voice tags to selected text</li>
  <li>Intuitive video overlay with handles to easily drag/size individual subtitle areas</li>
  <li>Ability to show/hide style/class/voice tags/elements</li>
</ul>

<p>Release 0.8.0 is planned once above list is done and potential bugs that come up are resolved.
Depending on community interest - ASS/SSA format improvements could be done to benefit from things that WebVTT support brought.</p>

<p>As usual you can try out precompiled binaries or AppImage of git development version (the <code class="language-plaintext highlighter-rouge">subtitlecomposer-git</code> package)
from <a href="/download.html">download page</a> or build it yourself from  <a href="https://invent.kde.org/multimedia/subtitlecomposer">invent.kde.org</a>.</p>

<p class="author">— Mladen</p>]]></content><author><name></name></author><summary type="html"><![CDATA[I’m happy to announce that the support for WebVTT format and all the nice features that it brings is finished.]]></summary></entry><entry><title type="html">Subtitle Composer 0.7.1 released</title><link href="https://subtitlecomposer.kde.org/2021/10/05/subtitle-composer-0.7.1-released.html" rel="alternate" type="text/html" title="Subtitle Composer 0.7.1 released" /><published>2021-10-05T09:21:40+00:00</published><updated>2021-10-05T09:21:40+00:00</updated><id>https://subtitlecomposer.kde.org/2021/10/05/subtitle-composer-0.7.1-released</id><content type="html" xml:base="https://subtitlecomposer.kde.org/2021/10/05/subtitle-composer-0.7.1-released.html"><![CDATA[<p>I’m happy to announce the 0.7.1 release of Subtitle Composer.</p>

<p>This release contains lots of bugfixes and new features including:</p>

<ul>
  <li>Improved stability, look and feel on different desktop environments</li>
  <li>Fixed various bugs and rare crashes</li>
  <li>Fixed Undo stack and improved text editing undo</li>
  <li>Improved/replaced video player (performance, Wayland support, OpenGL/FFmpeg)</li>
  <li>Improved waveform performance</li>
  <li>Improved subtitle lines widget and model performance</li>
  <li>Improved Wayland support</li>
  <li>Open/Save actions are using native file dialogs</li>
  <li>Improved text charsets/encodings/end-of-line selection, detection and handling</li>
  <li>Improved VobSub support</li>
  <li>Improved inline editor supports text styles</li>
  <li>Improved subtitle style rendering</li>
  <li>Improved character rate display and added coloring</li>
  <li>Improved command line - ability to open all subtitle/media files</li>
  <li>Added pause/duration columns to list view</li>
  <li>Updated/added many translations</li>
</ul>

<p>As usual all binaries are available from <a href="/download.html">download page</a>.</p>

<p>Source tarball can be downloaded from <a href="https://download.kde.org/stable/subtitlecomposer/">download.kde.org</a>.</p>

<p class="author">— Mladen</p>]]></content><author><name></name></author><summary type="html"><![CDATA[I’m happy to announce the 0.7.1 release of Subtitle Composer.]]></summary></entry><entry><title type="html">AppImage and Windows builds are online</title><link href="https://subtitlecomposer.kde.org/2021/05/05/appimage-and-windows-builds.html" rel="alternate" type="text/html" title="AppImage and Windows builds are online" /><published>2021-05-05T00:00:00+00:00</published><updated>2021-05-05T00:00:00+00:00</updated><id>https://subtitlecomposer.kde.org/2021/05/05/appimage-and-windows-builds</id><content type="html" xml:base="https://subtitlecomposer.kde.org/2021/05/05/appimage-and-windows-builds.html"><![CDATA[<p>After Windows/AppImage builds got broken on Travis CI due to Ubuntu Trusty EOL - new build scripts have been made.</p>

<p>Linux AppImage is now being built on <a href="https://build.opensuse.org/project/show/home:maxrd2">openSUSE Build Service</a>.</p>

<p>Windows build is in process of being added to OBS - in meantime builds are being done manually in <a href="https://github.com/maxrd2/arch-mingw">docker container</a> by yours truly.
If anyone’s interested the relative <a href="https://invent.kde.org/multimedia/subtitlecomposer/-/blob/master/pkg/mingw/build.sh">script is here</a>.</p>

<p>Also some fixes have been made to Subtitle Composer UI and themes - it looks good now in all Linux desktop environments, AppImage and Windows.</p>

<p>As usual all binaries are available from <a href="/download.html">download page</a>.</p>

<p class="author">— Mladen</p>]]></content><author><name></name></author><summary type="html"><![CDATA[After Windows/AppImage builds got broken on Travis CI due to Ubuntu Trusty EOL - new build scripts have been made.]]></summary></entry><entry><title type="html">Linux builds are online on openSUSE Build Service</title><link href="https://subtitlecomposer.kde.org/2020/12/02/obs-linux-builds.html" rel="alternate" type="text/html" title="Linux builds are online on openSUSE Build Service" /><published>2020-12-02T16:42:00+00:00</published><updated>2020-12-02T16:42:00+00:00</updated><id>https://subtitlecomposer.kde.org/2020/12/02/obs-linux-builds</id><content type="html" xml:base="https://subtitlecomposer.kde.org/2020/12/02/obs-linux-builds.html"><![CDATA[<p>
I am happy to announce that linux builds are online <a href="https://build.opensuse.org/project/show/home:maxrd2">openSUSE Build Service</a>.
</p>
<p>Currently there are scripts building binaries for:</p>
<ul>
	<li>Arch Linux (x86_64)</li>
	<li>Debian 10, Unstable and Testing</li>
	<li>openSUSE Tumbleweed (i586/x86_64) and Leap 15.1/15.2 (x86_64, PowerPC)</li>
	<li>Ubuntu Bionic (18.04 amd64), Focal (20.04 amd64) and Groovy (20.10 amd64)</li>
</ul>
<p>
Linux AppImage and mingw64 Windows builds are planned next.
They are of course all available on <a href="/download.html">download</a> page.
</p>
<p class="author">— Mladen</p>]]></content><author><name></name></author><summary type="html"><![CDATA[I am happy to announce that linux builds are online openSUSE Build Service. Currently there are scripts building binaries for: Arch Linux (x86_64) Debian 10, Unstable and Testing openSUSE Tumbleweed (i586/x86_64) and Leap 15.1/15.2 (x86_64, PowerPC) Ubuntu Bionic (18.04 amd64), Focal (20.04 amd64) and Groovy (20.10 amd64) Linux AppImage and mingw64 Windows builds are planned next. They are of course all available on download page. — Mladen]]></summary></entry><entry><title type="html">Adventures with gamma transfer functions and video colorspace conversions</title><link href="https://subtitlecomposer.kde.org/2020/10/18/colorspaces-and-conversions.html" rel="alternate" type="text/html" title="Adventures with gamma transfer functions and video colorspace conversions" /><published>2020-10-18T18:00:00+00:00</published><updated>2020-10-18T18:00:00+00:00</updated><id>https://subtitlecomposer.kde.org/2020/10/18/colorspaces-and-conversions</id><content type="html" xml:base="https://subtitlecomposer.kde.org/2020/10/18/colorspaces-and-conversions.html"><![CDATA[<p>Recently I wrote Video Player from scratch for Subtitle Composer that relies only on FFmpeg for decoding, OpenGL for
rendering video and OpenAL for playing audio.</p>

<p>After using several external video players and various libraries over the years - I got fed up with annoying
issues, code getting filled with nasty workarounds for simple stuff like seeks, timestamps and volume control and
wasting time debugging player/file issues that shouldn’t be there in the first place.</p>

<p>The idea is simple:</p>
<ul>
  <li>FFmpeg loads whatever media file and feeds audio/video frames to Subtitle Composer</li>
  <li>SC feeds audio frames to OpenAL</li>
  <li>SC feeds video frames to OpenGL shader which does colorspace conversion, gamma correction and rendering - all
of that using GPU - and displays it inside Qt video player widget</li>
  <li>SC renders subtitle text into a texture that again GPU draws over video</li>
  <li>SC can control seek precision down to a frame and do whatver it needs to make amazing user experience</li>
</ul>

<p>I started by taking example ffplay code from FFmpeg, cleaning it up a bit and replacing small bits with C++ and Qt5
classes and APIs. In no time I had working video player that was working nicely and rendering video into a SDL window
and playing SDL audio.</p>

<p>After awhile SDL window was replaced with <a href="https://invent.kde.org/multimedia/subtitlecomposer/-/blob/master/src/videoplayer/backend/glrenderer.cpp">QOpenGLWidget</a>.
YUV video frame was fed into a texture, simple GLSL shader was doing YUV -&gt; RGB conversion and voila - frame is rendered
inside a video widget. Everything seemed fine so far, but I knew that video frames don’t always have to be in YUV format
and they can have different colorspaces.</p>

<p>Afterwards SDL audio was replaced with OpenAL - that part went smoothly too and audio part was done.</p>

<p>Then I went digging into various frame formats and colorspaces and looking information about that - honestly was hoping
that I would find some information on Wikipedia or online, and some nice source in existing video player like MPV or VLC
do some copy/pasta add some credits and be done with it.</p>

<p>What I ended up figuring is that there is a whole science about image encoding and perception that needed to be taken into
account. Then there is science and history of transmitting and encoding analog/digital video signals and their relative
standards (whose specs are nowhere to be found publicly, hard to obtain and hidden behind paywalls) and some linear algebra.
I found out that most open source video players around did wrong color space conversions, did approximate gamma correction
which resulted in colors which weren’t perfect and dark video frames being sometimes completely unperceivable.</p>

<p>Dark video frames in most software video players were very close to all black and I had trouble perceiving shapes, objects
and people on dark scenes without tweaking brightness/contrast which would result in light scenes becoming too light.
Watching the same video on my smart TV resulted with completely different experience - I could perceive people and objects
in dark scenes, and light scenes had normal color and lightness.</p>

<p>This was all happening because of <a href="https://en.wikipedia.org/wiki/Gamma_correction">gamma encoding</a> of video pixels. To put it
simply they aren’t properly decoded into RGB pixels. <strong>I won’t go into too much detail here and will explain it with
somewhat incorrect terms, just to give the general idea. I have listed references to books that I’ve found very informative,
useful and accurate at the bottom.</strong></p>

<p>The thing that bothered me the most is how I was able only to find a bunch of incorrect and inaccurate matrices and examples
online for colorspace conversion and gamma correction, but the math, science and accurate explanation is nowhere to be freely
found - that sadly includes Wikipedia which doesn’t explain much and some information it does is
<a href="https://stackoverflow.com/questions/53952959/why-were-the-constants-in-yuv-rgb-chosen-to-be-the-values-they-are/64392724#64392724">incorrect</a>.</p>

<p>It all boils down to <a href="https://en.wikipedia.org/wiki/CIE_1931_color_space">human vision experiments done in 1931 by CIE</a> - human
eye has 3 different type of cells that are sensible to different <a href="https://en.wikipedia.org/wiki/Visible_spectrum">light spectrum</a>.
Some cells are more sensitive to light than the others, and in general we can better perceive small color differences in low light
than in bright light conditions.</p>

<p>Light spectrum information is encoded into RGB values (red, green and blue - one for each receptor cell in human eye) which are then
mathematically transformed into XYZ colorspace. More or less Y component is our perception of lightness - XZ components are our
perception of color (hue).</p>

<p>Video is usually encoded into some YUV colorspace - Y component was supposed to represent lightness (but it isn’t) and UV are supposed
to represent color. As said before human eye is more sensitive to differences in low light than in bright light. For example if Y was to
be represented with values between 0 and 1000, with 0 being complete darkness, human eye might notice the difference between 3
and 4 but would might not notice the difference between 900 and 960.</p>

<p>Since each component in YUV is usually encoded into one byte (0-255 or -128-127) - values are transformed using exponential function.
That way Y of 2-9 would end up between 1.4-3.0, while 900-960 would change to 30.0-31.0 (this is just crude example). This can then
easily be stored into one byte and when restored we will perceive lightness with little distortion. The problem with using exponential
function is that it’s distorting low (dark) values too much. As said before eye might notice the difference between Y of 3 and 4,
but exponential function (after rounding to integer) is encoding both those values into value of 2. So it was decided keep low values
upto some threshold as they are and encode higher values using exponential function. That way 2-9 would stay 2.0-9.0 and 900-960 would
end up in 40.0-41.0 range. And more or less what is what gamma function does.</p>

<p>The computer monitor and video cards also has some gamma function (usually that of <a href="https://en.wikipedia.org/wiki/Cathode-ray_tube">CRT</a>
as defined in <a href="https://en.wikipedia.org/wiki/SRGB">sRGB</a>) and is sometimes very similar to that of encoded video.</p>

<p>To accurately display colors and pixels video renderer should first decode pixels using inverse gamma function and colorspace that was
used on source, and afterwards apply gamma and colorspace conversion so pixel values match that of your video card and monitor.</p>

<p>Since each video frame contain a bunch of pixels (480000 pixels for 800x600), each has to be gamma corrected in 4ms (25 fps) - what
most software video players did is ignore the fact about linear part in gamma function and approximate the exponential part in order to
reduce the number of calculations on CPU so they can display fluid video in realtime without dropping any frames.</p>

<p>Nowadays most of the video players do the GPU accelerated rendering, but a lot of them do gamma and colorspace correction incorrectly or
simple ignore it.</p>

<p>Subtitle Composer video player is using matrices for colorspace and gamma correction that were calculated by the script I’ve <a href="https://invent.kde.org/multimedia/subtitlecomposer/-/blob/master/src/videoplayer/backend/glcolorspace.js">made here</a>
from information taken from ISO/IEC 23001-8:2016 standard book (apparently same thing that FFmpeg referneces).
The script generates <a href="https://invent.kde.org/multimedia/subtitlecomposer/-/blob/master/src/videoplayer/backend/glcolorspace.h">colorspace conversion matrices and GLSL gamma functions</a> that are used by the OpenGL renderer.
Colorspace conversion matrices are more accurate than anything I’ve found around (some are just copy pasted from completelt different/wrong
colorspace) or at least I believe so. GLSL gamma correction (color transfer) functions are accurate, some of the inverse functions are wrong
since inverse ones are calculated by javascript script that <a href="https://invent.kde.org/multimedia/subtitlecomposer/-/blob/master/src/videoplayer/backend/glcolorspace.js#L502">did the math and calculated inverses</a>
for me. They will be fixed once I manage to get my hands on video encoded using that gamma function and test it properly.</p>

<p>Here’s the literature I’ve used and I recommend reading if you’re into whole colorspace thing:</p>
<ul>
  <li>CAN/CSA-ISO/IEC 23001-8:18 - Information technology — MPEG systems technologies — Part 8: Coding-independent code points
(ISO/IEC 23001-8:2016, IDT)</li>
  <li>“Digital Video and HDTV - Algorithms and Interfaces” by C. Poynton (2003)</li>
  <li>“A Review of RGB Color Spaces (…from xyY to R’G’B’)” by Danny Pascale (2003)</li>
  <li>“Colour Space Conversions” by Adrian Ford and Alan Roberts (1998)</li>
</ul>

<p>P.S. Several months after completing color conversion and redering work I’ve found out libplacebo that does what i did with rendering,
     and likely better. So be sure to check it out - maybe it’ll be included into SC in the future - for now current player works good.</p>

<p class="author">— Mladen</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Recently I wrote Video Player from scratch for Subtitle Composer that relies only on FFmpeg for decoding, OpenGL for rendering video and OpenAL for playing audio.]]></summary></entry><entry><title type="html">New QtAV player has been abandoned</title><link href="https://subtitlecomposer.kde.org/2020/10/11/qtav-player-abandoned.html" rel="alternate" type="text/html" title="New QtAV player has been abandoned" /><published>2020-10-11T18:29:57+00:00</published><updated>2020-10-11T18:29:57+00:00</updated><id>https://subtitlecomposer.kde.org/2020/10/11/qtav-player-abandoned</id><content type="html" xml:base="https://subtitlecomposer.kde.org/2020/10/11/qtav-player-abandoned.html"><![CDATA[<p>As you might have noticed - all various video player plugins have recently been removed from Subtitle Composer.</p>

<p>They were all using external video players or libraries and each one of them had it share of problems integrating
and working nicely with Subtitle Composer. Different handling of audio volume, frequency of notifications, seek
precision, error handling/reporting and so on. Also none was working under Wayland.</p>

<p>Also using different backends made it very time consuming to test changes in Subtitle Composer.</p>

<p>After moving the project to KDE build infrastructure I had to make build scripts of various video backends and
their dependencies. That would likely amount to 100+ new packages/build scripts and who knows what else.</p>

<p>Instead - have decided to drop all those backend and use QtAV - library made for Qt that would handle all FFmpeg
calls and rendering. QtAV seemed great at the moment, but it ended up much worse than expected.</p>

<ul>
  <li>
    <p>It has one big mess of qmake/cmake/shell/batch build scripts that was close to impossible to build using qmake inside
<a href="https://community.kde.org/Craft">KDE Craft</a> on all supported platforms. After few weeks of debugging, testing and
<a href="https://invent.kde.org/packaging/craft-blueprints-kde/-/commits/967b59ee19bfa91b432cb9d7c7a99181ae09d276/libs/qtav/qtav.py">patching</a>
qmake scripts I’ve deleted it all and made it using cmake build with far
<a href="https://invent.kde.org/packaging/craft-blueprints-kde/-/commit/967b59ee19bfa91b432cb9d7c7a99181ae09d276">less patches</a>.</p>
  </li>
  <li>
    <p>After Subtitle Composer relases started going out people started complaining about performance, stuttering, compilation
and so on.</p>
  </li>
  <li>
    <p>APIs ended up being worse from what is seemed at first and seeking to correct position in file was awful. Accurate seeking
is imporant for a subtitle editor.</p>
  </li>
</ul>

<p>After inspecting QtAV code when I was trying to patch/fix things I’ve decided to - remove it all again. Now Subtitle Composer
uses FFmpeg libraries directly for decoding media streams and does all rendering and color conversion using OpenGL shaders.
You can read all about adventures with color conversion in a post I’ll write soon.</p>

<p>Some people preferred using GStreamer. Over the years I had experiences with GStreamer and it’s plugins not being able to open
all formats/containers/codecs (probably due to broken/bad files where FFmpeg was much more tolerant and robust) and sometimes
even crashing. Also GStreamer is designed in similar fashion to Microsoft’s DirectShow - it has a pipeline with bunch of
decoders/encoders/sources/sink which is very nice for hacking stuff from command line, but find it disgusting to code with.</p>

<p class="author">— Mladen</p>]]></content><author><name></name></author><summary type="html"><![CDATA[As you might have noticed - all various video player plugins have recently been removed from Subtitle Composer.]]></summary></entry></feed>