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:45] – [Two pass encoding] niccolo | doc:appunti:linux:video:ffmpeg_final_rendering [2024/07/31 09:57] (current) – [Two pass encoding] niccolo | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Final Rendering | + | ====== Final Rendering with libx264 and ffmpeg ====== |
Whether you are working with **Ffmepg**, **Avidemux** or **Olive Video Editor**, you should be wondering what parameters to use to final render a video montage. Here are my choices for some specific purpose. | Whether you are working with **Ffmepg**, **Avidemux** or **Olive Video Editor**, you should be wondering what parameters to use to final render a video montage. Here are my choices for some specific purpose. | ||
- | |||
===== Encoding for High Definition Video ===== | ===== Encoding for High Definition Video ===== | ||
Line 43: | Line 42: | ||
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//; '' | ||
- | ===== 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: | ||
- | |||
- | FIXME | ||
- | |||
- | <code bash> | ||
- | </ | ||
===== A warning about the H.264 profile level ===== | ===== A warning about the H.264 profile level ===== | ||
Line 63: | Line 54: | ||
| High@5 | | High@5 | ||
| High@5 | | High@5 | ||
+ | |||
+ | ===== Two pass encoding ===== | ||
+ | |||
+ | Here it is a recipe of **two-pass encoding** from an high quality //master// produced with [[olive_editor_tools# | ||
+ | |||
+ | <code bash> | ||
+ | TITLE=' | ||
+ | ffmpeg \ | ||
+ | -i full32bit-veryslow-crf18-fullcolor.mkv \ | ||
+ | -metadata title=" | ||
+ | -vcodec ' | ||
+ | -profile:v ' | ||
+ | -b:v 6M -maxrate:v 9M -bufsize:v 18M \ | ||
+ | -x264-params ' | ||
+ | -an \ | ||
+ | -pass 1 \ | ||
+ | -f matroska -y /dev/null | ||
+ | # First pass produces two files: ffmpeg2pass-0.log and ffmpeg2pass-0.log.mbtree. | ||
+ | ffmpeg \ | ||
+ | -i full32bit-veryslow-crf18-fullcolor.mkv \ | ||
+ | -metadata title=" | ||
+ | -vcodec ' | ||
+ | -profile:v ' | ||
+ | -b:v 6M -maxrate:v 9M -bufsize:v 18M \ | ||
+ | -x264-params ' | ||
+ | -an \ | ||
+ | -pass 2 \ | ||
+ | -f matroska marocco-twopass-6max9-level41.mkv | ||
+ | </ | ||
+ | |||
+ | 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 (about two seconds), this make seeking back and forward in the video more smooth. | ||
===== Pixel format considerations ===== | ===== Pixel format considerations ===== |
doc/appunti/linux/video/ffmpeg_final_rendering.1722411917.txt.gz · Last modified: 2024/07/31 09:45 by niccolo