<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to VideoEncoding</title><link>https://sourceforge.net/p/glmixer/wiki/VideoEncoding/</link><description>Recent changes to VideoEncoding</description><atom:link href="https://sourceforge.net/p/glmixer/wiki/VideoEncoding/feed" rel="self"/><language>en</language><lastBuildDate>Sun, 03 Jun 2018 18:12:12 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/glmixer/wiki/VideoEncoding/feed" rel="self" type="application/rss+xml"/><item><title>VideoEncoding modified by Bruno Herbelin</title><link>https://sourceforge.net/p/glmixer/wiki/VideoEncoding/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -4,46 +4,68 @@

 **Select recording format and codec:**

-* H264 : standard compromise for speed and quality.
-* WebM VP9 : constant visual quality, small file size.
+*The most standard video codec is H264: it is recommended for GLMixer.*
+
+Here is a list of possible encoding codecs:
+
+* H.264 (MPEG-4 AVC) : standard compromise for speed and quality.
+* HEVC (H265): better compromise for speed and quality.
+* WebM (VP9) : constant visual quality, small file size.
 * Apple ProRes : priority to visual quality, large file size.
 * MPEG-4 (DivX): old classic, good compromise.
 * MPEG-1 and 2 : ancient classics, not performant. 
 * Windows Media and Flash Video : here for legacy and portability.
-* FF Video  : ffmpeg lossless (YUV444), well balanced compromise.
+* FF Video : ffmpeg lossless (YUV444), well balanced compromise.
 * Rawvideo: lossless (RGB), very large files.
-
-*Nota Bene: On machines running NVidia Graphics card, hardware GPU accelerated H264 encoding is selected by default.*

 **Selection of quality factor for some codecs:**

-* H264 : target quality, limited bitrate, YUV420P pixel format, YUV444P in high quality.
+*Quality AUTO is recommended for recording.* It is a well-ballanced compromize for performance (speed for encoding), file size (between low and medium), and visual quality (almost visualy lossless in most cases). It is somewhere between LOW and MEDIUM.
+
+The four categories of quality are defined by these criteria:
+
+* AUTO : follows reccomendations for good visual quality and efficient bitrate. Encoding should be efficient in real time. 
+* LOW : small file size in priority, with a low bitrate, but visually poor quality. Encoding should be efficient in real time. 
+* MEDIUM : attempt at a very high quality, with acceptable file size and bitrate. Better quality than AUTO for exigent video content. Encoding should still be efficient in real time. 
+* HIGH : best visual quality in priority, with higher pixel format (for high fidelity color representation), but large file size and high bitrate. Encoding is **slow** and might not be possible if your machine is not powerfull enough.
+
+Here is a list of encoding codecs allowing the selection of quality:
+
+* H264 : constant quality mode, variable bitrate, YUV420P pixel format, YUV444P in high quality.
+* HEVC : constant quality mode, variable bitrate, YUV420P pixel format, YUV444P in high quality.
 * WebM VP9 : fixed visual quality, variable bitrate, YUV420P pixel format, YUV444P in high quality.
 * Apple Prores 422: fixed visual quality, variable bitrate, YUV422 pixel format.
 * MPEG-4 : limited constant bit rate, YUV420P pixel format.

 *Example: YouTube format: H264 Medium.*

+**Hardware acceleration**
+
+On machines running NVidia Graphics card, hardware GPU accelerated encoding is selected by default under Linux and Windows (not available under OSX).
+GLMixer uses ffmpeg implementation of [NVidia Video Codec SDK](https://developer.nvidia.com/nvidia-video-codec-sdk) for encoding and decoding.
+
 ## Select Frame rate and Buffer Size

 **Choosing the Frame Rate**

-For standard and portable video, select 25 or 30 fps.
+*For standard and portable video, select 25 or 30 fps.*

-Frame rates of 20, 40 and 50 fps are also standard. The higher, the smoother the movement.
+Frame rates of 20, 40 and 50 fps are also possible. The higher the frame rate, the smoother the movement &amp;amp; the best quality for content with abrupt change.
 High 60 fps is often an overkill, but necessary for some fast pace video.

-Lower frame rates (20, 10, 5, 2 and 1 fps) are rather for visual effects and time-laps (e.g. record at 1fps and replay the video speed x10).
+Lower frame rates (20, 10, 5, 2 and 1 fps) are rather for visual effects and time-laps (e.g. record at 1fps and replay the video at speed x10).

-**Quality vs. Frame rate**
+**Quality vs. Frame rate : performance compromise**

-Encoding and compressing each captured frame takes processing power to your computer. Depending on your hardware, you might not be able to run GLMixer at a the desired frame rate: in this case, the recording will not stop, but some frames will be dropped, making 'holes' into your video. If several frames are dropped, a warning dialog asks you if you want to keep the video anyway.
+*High frame rate and high quality are not always compatible* : you shall test with your machine to know what works.

-It is **recommended to record at a frame rate bellow a comfortable rendering frame rate**. E.g. your rendering is running smoothly at 50fps, it is safe to record at 30fps. If your computer cannot cope already with 30fps just for the rendering, it will probably not be able to record at 30fps (so you can try at 25).
+Encoding and compressing each captured frame takes processing power to your computer. Depending on your hardware, you might not be able to record at a the desired frame rate: in this case, the recording will not stop, but some frames will be dropped, making 'holes' into your video. If several frames are dropped, a warning dialog asks you if you want to keep the video anyway.
+
+It is **recommended to record at a frame rate bellow a comfortable rendering frame rate**. E.g. if your rendering is running smoothly at 50fps, it is safe to record at 30fps. If your computer cannot cope already with 30fps for the rendering, it will probably not be able to record at 30fps (so you can try at 25).

 **Choosing a buffer size**

-A small buffer of 200 MB (default) should be sufficient for all recordings: better lower frame rate than increase buffer.
+*A small buffer of 200 MB (default) should be sufficient for all recordings.*

 First and foremost, make sure your computer has enough RAM available (GLMixer cannot test your system). If you ask for 1GB of buffer and ran out of memory, the computer might freeze and require a hard reboot.

@@ -58,6 +80,10 @@
        | Low       | 13.5 MB 
        | Medium       | 62.6 MB 
        | High       | 248.6 MB 
+HEVC      | Auto       | 21.9 MB 
+       | Low       | 9.7 MB 
+       | Medium       | 50.7 MB 
+       | High       | 88.3 MB 
 WebM VP9      | Auto       | 16.6 MB 
        | Low       | 12.1 MB 
        | Medium       | 26.8 MB 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bruno Herbelin</dc:creator><pubDate>Sun, 03 Jun 2018 18:12:12 -0000</pubDate><guid>https://sourceforge.net8c6347d6366d13bfb717000838209d3815ab9c7e</guid></item><item><title>VideoEncoding modified by Bruno Herbelin</title><link>https://sourceforge.net/p/glmixer/wiki/VideoEncoding/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="video-recording-in-glmixer"&gt;Video Recording in GLMixer&lt;/h1&gt;
&lt;h2 id="select-codec-and-quality"&gt;Select Codec (and quality)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Select recording format and codec:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;H264 : standard compromise for speed and quality.&lt;/li&gt;
&lt;li&gt;WebM VP9 : constant visual quality, small file size.&lt;/li&gt;
&lt;li&gt;Apple ProRes : priority to visual quality, large file size.&lt;/li&gt;
&lt;li&gt;MPEG-4 (DivX): old classic, good compromise.&lt;/li&gt;
&lt;li&gt;MPEG-1 and 2 : ancient classics, not performant. &lt;/li&gt;
&lt;li&gt;Windows Media and Flash Video : here for legacy and portability.&lt;/li&gt;
&lt;li&gt;FF Video  : ffmpeg lossless (YUV444), well balanced compromise.&lt;/li&gt;
&lt;li&gt;Rawvideo: lossless (RGB), very large files.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Nota Bene: On machines running NVidia Graphics card, hardware GPU accelerated H264 encoding is selected by default.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Selection of quality factor for some codecs:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;H264 : target quality, limited bitrate, YUV420P pixel format, YUV444P in high quality.&lt;/li&gt;
&lt;li&gt;WebM VP9 : fixed visual quality, variable bitrate, YUV420P pixel format, YUV444P in high quality.&lt;/li&gt;
&lt;li&gt;Apple Prores 422: fixed visual quality, variable bitrate, YUV422 pixel format.&lt;/li&gt;
&lt;li&gt;MPEG-4 : limited constant bit rate, YUV420P pixel format.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Example: YouTube format: H264 Medium.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="select-frame-rate-and-buffer-size"&gt;Select Frame rate and Buffer Size&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Choosing the Frame Rate&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For standard and portable video, select 25 or 30 fps.&lt;/p&gt;
&lt;p&gt;Frame rates of 20, 40 and 50 fps are also standard. The higher, the smoother the movement.&lt;br/&gt;
High 60 fps is often an overkill, but necessary for some fast pace video.&lt;/p&gt;
&lt;p&gt;Lower frame rates (20, 10, 5, 2 and 1 fps) are rather for visual effects and time-laps (e.g. record at 1fps and replay the video speed x10).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Quality vs. Frame rate&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Encoding and compressing each captured frame takes processing power to your computer. Depending on your hardware, you might not be able to run GLMixer at a the desired frame rate: in this case, the recording will not stop, but some frames will be dropped, making 'holes' into your video. If several frames are dropped, a warning dialog asks you if you want to keep the video anyway.&lt;/p&gt;
&lt;p&gt;It is &lt;strong&gt;recommended to record at a frame rate bellow a comfortable rendering frame rate&lt;/strong&gt;. E.g. your rendering is running smoothly at 50fps, it is safe to record at 30fps. If your computer cannot cope already with 30fps just for the rendering, it will probably not be able to record at 30fps (so you can try at 25).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Choosing a buffer size&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A small buffer of 200 MB (default) should be sufficient for all recordings: better lower frame rate than increase buffer.&lt;/p&gt;
&lt;p&gt;First and foremost, make sure your computer has enough RAM available (GLMixer cannot test your system). If you ask for 1GB of buffer and ran out of memory, the computer might freeze and require a hard reboot.&lt;/p&gt;
&lt;p&gt;Large buffer is useful to record &lt;strong&gt;short sequences in very high quality or very high frame rate&lt;/strong&gt; if your computer does not manage to record on the fly. In this case, all the recording is put into RAM, and the encoding and saving will be done after you stop the recorder. You will then wait untill the encoding is finished.&lt;/p&gt;
&lt;h2 id="file-size"&gt;File Size&lt;/h2&gt;
&lt;p&gt;Here is a test for a 10 s recording, 1920x1080 (Full HD), at 30fps&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Codec&lt;/th&gt;
&lt;th&gt;Quality&lt;/th&gt;
&lt;th&gt;File size&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;H264&lt;/td&gt;
&lt;td&gt;Auto&lt;/td&gt;
&lt;td&gt;32.2 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;13.5 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;62.6 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;248.6 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WebM VP9&lt;/td&gt;
&lt;td&gt;Auto&lt;/td&gt;
&lt;td&gt;16.6 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;12.1 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;26.8 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;41.2 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ProRes&lt;/td&gt;
&lt;td&gt;Auto&lt;/td&gt;
&lt;td&gt;155.6 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;111.9 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;280.3 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;375.4 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MPEG-4&lt;/td&gt;
&lt;td&gt;Auto&lt;/td&gt;
&lt;td&gt;30.5 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;10.5 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;43.9 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;69.4 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MPEG-2&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;28.5 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MPEG-1&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;12.0 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows Media Video 8&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;30.8 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Flash Video (Sorenson)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;30.4 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FF Video #1&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;404.5 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rawvideo (RGB)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;1.9 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bruno Herbelin</dc:creator><pubDate>Thu, 31 May 2018 21:33:04 -0000</pubDate><guid>https://sourceforge.net26f81855fec0bda77acd99a9c9801b98646d816b</guid></item></channel></rss>