doc:appunti:linux:video:ffmpeg_final_rendering
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
doc:appunti:linux:video:ffmpeg_final_rendering [2024/07/31 09:52] – [Two pass encoding] niccolo | doc:appunti:linux:video:ffmpeg_final_rendering [2024/07/31 09:57] (current) – [Two pass encoding] niccolo | ||
---|---|---|---|
Line 41: | Line 41: | ||
Notice that we selected a target bitrate of **4 Mbps** and a maximum bitrate of **6 Mbps**. Sepcifying both the //bitrate// and the //max bitrate tolerance// requires also to specify a //buffer size//; '' | Notice that we selected a target bitrate of **4 Mbps** and a maximum bitrate of **6 Mbps**. Sepcifying both the //bitrate// and the //max bitrate tolerance// requires also to specify a //buffer size//; '' | ||
+ | |||
+ | ===== A warning about the H.264 profile level ===== | ||
+ | |||
+ | It turned out that **Kodi 19.4** (running on a Raspberry Pi 4 with **Raspbian GNU/Linux 11 Bullseye** o.s.) has some problems playing H.264 video files depending on the video format profile used for the encoding. The video actually starts to play, but nothing is seen on the screen; sometimes the screen goes totally green. Similarly a **Google TV** with Kodi 21.0 has problems with the same files, showing stuttering and video artifacts. | ||
+ | |||
+ | Here it is a table of playing capabilities based on experimental testing: | ||
+ | |||
+ | ^ Format profile | ||
+ | | High@L5 | ||
+ | | High@L4 | ||
+ | | High@L4.1 | ||
+ | | High@5 | ||
+ | | High@5 | ||
===== Two pass encoding ===== | ===== Two pass encoding ===== | ||
- | Here it is a recipe of **two-pass encoding** from an high quality //master// produced with Olive Video Editor. The target video will be a 6 Mbit stream, 1920x1080@30. The profile level selected is High@L4.1, so that the video will play nicely with Kodi 19.4 on the Raspberry Pi 4: | + | Here it is a recipe of **two-pass encoding** from an high quality //master// produced with [[olive_editor_tools# |
<code bash> | <code bash> | ||
Line 51: | Line 64: | ||
-i full32bit-veryslow-crf18-fullcolor.mkv \ | -i full32bit-veryslow-crf18-fullcolor.mkv \ | ||
-metadata title=" | -metadata title=" | ||
- | -vcodec ' | + | -vcodec ' |
+ | | ||
-b:v 6M -maxrate:v 9M -bufsize:v 18M \ | -b:v 6M -maxrate:v 9M -bufsize:v 18M \ | ||
-x264-params ' | -x264-params ' | ||
Line 57: | Line 71: | ||
-pass 1 \ | -pass 1 \ | ||
-f matroska -y /dev/null | -f matroska -y /dev/null | ||
+ | # First pass produces two files: ffmpeg2pass-0.log and ffmpeg2pass-0.log.mbtree. | ||
ffmpeg \ | ffmpeg \ | ||
-i full32bit-veryslow-crf18-fullcolor.mkv \ | -i full32bit-veryslow-crf18-fullcolor.mkv \ | ||
-metadata title=" | -metadata title=" | ||
- | -vcodec ' | + | -vcodec ' |
+ | | ||
-b:v 6M -maxrate:v 9M -bufsize:v 18M \ | -b:v 6M -maxrate:v 9M -bufsize:v 18M \ | ||
-x264-params ' | -x264-params ' | ||
Line 69: | Line 84: | ||
</ | </ | ||
- | The transcoding works on the video only, suppressing any video stream (**%%-an%%** option). Using the **keyint=64** option will produce a keyframe every 64 frame (about | + | The transcoding works on the video only, suppressing any audio stream (**%%-an%%** option). Using the **keyint=64** option will produce a keyframe every 64 frames |
- | + | ||
- | ===== A warning about the H.264 profile level ===== | + | |
- | + | ||
- | It turned out that **Kodi 19.4** (running on a Raspberry Pi 4 with **Raspbian GNU/Linux 11 Bullseye** o.s.) has some problems playing H.264 video files depending on the video format profile used for the encoding. The video actually starts to play, but nothing is seen on the screen; sometimes the screen goes totally green. Similarly a **Google TV** with Kodi 21.0 has problems with the same files, showing stuttering and video artifacts. | + | |
- | + | ||
- | Here it is a table of playing capabilities based on experimental testing: | + | |
- | + | ||
- | ^ Format profile | + | |
- | | High@L5 | + | |
- | | High@L4 | + | |
- | | High@L4.1 | + | |
- | | High@5 | + | |
- | | High@5 | + | |
===== Pixel format considerations ===== | ===== Pixel format considerations ===== |
doc/appunti/linux/video/ffmpeg_final_rendering.1722412374.txt.gz · Last modified: by niccolo