AV1 yuv422p10le rendering with some output FFStream::seek I/O errors, seek fails
So far it seems like 10-bit color depth yuv422p10le is only available for AV1 via FFmpeg encoders libaom-av1 and librav1e. That is not yet with the from experience faster libsvtav1, which currently support pixel formats yuv420p and yuv420p10le. My AV1 (video only) test run procedure using CinGG loading a 10-bit input file, resulted in 12% smaller file size than with h265. Visually the AV1 output file seemingly is ok, but there are some CinGG output "FFStream::seek I/O errors, seek fails" I don't know what are !? CinGG (built: Jul 29 2024 01:18:06, rpm on Leap) Render: File Format: FFMPEG | webm Video wrench: Compression: av1.webm (libaom?) | pixels: yuv422p10le Defaults: # this codec codes less than one frame per sec # and so even a few seconds of video can take # a very long time to encode cpu-used 5 row-mt 1 tiles 2x2 strict -2 threads 8 15M av1_yuv422p10le_LP.webm ** rendered 1780 frames in 184.787 secs, 9.633 fps FFMPEG::open_decoder: some stream times estimated: /run/media/terje/Videoklipp/Cineform/av1_yuv422p10le_LP.webm FFMPEG::open_decoder: some stream times estimated: /run/media/terje/Videoklipp/Cineform/av1_yuv422p10le_LP.webm FFStream::seek: /run/media/terje/Videoklipp/Cineform/av1_yuv422p10le_LP.webm retry limit, pos=207 tstmp=8280, err: Input/output error ** seek fail 207, 8280 .....snip FFStream::seek: /run/media/terje/Videoklipp/Cineform/av1_yuv422p10le_LP.webm retry limit, pos=87 tstmp=3480, err: Input/output error ** seek fail 87, 3480 Verificated the output file with FFprobe: ffprobe -hide_banner av1_yuv422p10le_LP.webm Input #0, matroska,webm, from 'av1_yuv422p10le_LP.webm': Metadata: ENCODER : Lavf61.1.100 Duration: 00:01:11.16, start: 0.000000, bitrate: 1709 kb/s Stream #0:0: Video: av1 (libdav1d) (Professional), yuv422p10le(pc, bt709/unknown/unknown), 1920x1080, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 1k tbn Metadata: DURATION : 00:01:11.160000000
*Summary* is that the error message is due to lack of keyframes and the workaround is to use Transcode. BUT hopefully a better solution with the Render format parameters can be found. The render fix for h264/h265 formats is the addition of the lines below (which obviously is not pertinent to av1). I will see if I can find an alternative, but might not.
# use framerate for 1 keyframe/sec, needed for seeks keyint_min=25 (or keyint_min=30 for x265) x264-params=keyint=25 (or x265-params-keyint=30 for x265)
About the error message:
FFStream::seek: /run/media/terje/Videoklipp/Cineform/av1_yuv422p10le_LP.webm retry limit, pos=207 tstmp=8280, err: Input/output error ** seek fail 207, 8280
Seeking Issues ( https://cinelerra-gg.org/download/CinelerraGG_Manual/Seeking_Issues.html)
If you have an issue playing a video and not seeing it in the Compositor (just see a black screen), it is most likely due to the media not being designed to be editable. It is most likely not damaged. Generally it just does not have keyframes which are needed for seeking which is what is done when you move around the media and start playing in the middle. The media plays just fine in the compositor if you always play from the beginning because then you don’t need keyframes to seek. You can get around this problem if you proxy the media. A good choice to use for the proxy would be use scalar, ffmpeg/mp4 and size of 1/2.
The proxied media can then seek and you will see it play in the compositor
because keyframes exist.
Or use TRANSCODE which adds keyframes when media is not seekable (see Manual for details). This is particularly useful for the mkv container, which often has seek problems. Just a reminder about the message below.
FFMPEG::open_decoder: some stream times estimated:
This is not a problem. Basically, when you open a file if a stream has a known duration, there is no message. If the duration is unknown, it is estimated by using the File Size and Bitrate to estimate the duration. ---------------------------------------- My AV1 (video only) test run procedure using CinGG loading a 10-bit input
file, resulted in 12% smaller file size than with h265. Visually the AV1 output file seemingly is ok, but there are some CinGG output "FFStream::seek I/O errors, seek fails" I don't know what are !?
On Wed, Aug 7, 2024 at 9:13 PM Phyllis Smith via Cin <[email protected]> wrote:
Summary is that the error message is due to lack of keyframes and the workaround is to use Transcode. BUT hopefully a better solution with the Render format parameters can be found. The render fix for h264/h265 formats is the addition of the lines below (which obviously is not pertinent to av1). I will see if I can find an alternative, but might not.
aomenc --help mentions --kf-min-dist=<arg> Minimum keyframe interval (frames) --kf-max-dist=<arg> Maximum keyframe interval (frames) and there seems to be way (aom-params) to pass libaom specific options via ffmpeg's ... so .. aom-params=kf-min-dist=25:kf-max-dist=25 ? for svt-av1 you hopefully can use just keyint= with svtav1-params line? command line svt av1 encoder seems to default for 5 seconds? Also, may be add keyint_min=25 (for 25 fps vid) as generic libav* (ffmpeg) option
# use framerate for 1 keyframe/sec, needed for seeks keyint_min=25 (or keyint_min=30 for x265) x264-params=keyint=25 (or x265-params-keyint=30 for x265)
About the error message:
FFStream::seek: /run/media/terje/Videoklipp/Cineform/av1_yuv422p10le_LP.webm retry limit, pos=207 tstmp=8280, err: Input/output error ** seek fail 207, 8280
Seeking Issues (https://cinelerra-gg.org/download/CinelerraGG_Manual/Seeking_Issues.html)
If you have an issue playing a video and not seeing it in the Compositor (just see a black screen), it is most likely due to the media not being designed to be editable. It is most likely not damaged. Generally it just does not have keyframes which are needed for seeking which is what is done when you move around the media and start playing in the middle. The media plays just fine in the compositor if you always play from the beginning because then you don’t need keyframes to seek. You can get around this problem if you proxy the media. A good choice to use for the proxy would be use scalar, ffmpeg/mp4 and size of 1/2.
The proxied media can then seek and you will see it play in the compositor because keyframes exist.
Or use TRANSCODE which adds keyframes when media is not seekable (see Manual for details). This is particularly useful for the mkv container, which often has seek problems.
Just a reminder about the message below.
FFMPEG::open_decoder: some stream times estimated:
This is not a problem. Basically, when you open a file if a stream has a known duration, there is no message. If the duration is unknown, it is estimated by using the File Size and Bitrate to estimate the duration. ----------------------------------------
My AV1 (video only) test run procedure using CinGG loading a 10-bit input file, resulted in 12% smaller file size than with h265. Visually the AV1 output file seemingly is ok, but there are some CinGG output "FFStream::seek I/O errors, seek fails" I don't know what are !?
-- Cin mailing list [email protected] https://lists.cinelerra-gg.org/mailman/listinfo/cin
g=30 keyint_min=30
Seems to work for av1.webm format -- still testing. I want to test Andrew's suggestions next. On Wed, Aug 7, 2024 at 1:18 PM Andrew Randrianasulu <[email protected]> wrote:
On Wed, Aug 7, 2024 at 9:13 PM Phyllis Smith via Cin <[email protected]> wrote:
Summary is that the error message is due to lack of keyframes and the
workaround is to use Transcode.
BUT hopefully a better solution with the Render format parameters can be found. The render fix for h264/h265 formats is the addition of the lines below (which obviously is not pertinent to av1). I will see if I can find an alternative, but might not.
aomenc --help mentions
--kf-min-dist=<arg> Minimum keyframe interval (frames) --kf-max-dist=<arg> Maximum keyframe interval (frames)
and there seems to be way (aom-params) to pass libaom specific options via ffmpeg's ...
so .. aom-params=kf-min-dist=25:kf-max-dist=25 ?
for svt-av1 you hopefully can use just keyint= with svtav1-params line? command line svt av1 encoder seems to default for 5 seconds?
Also, may be add keyint_min=25 (for 25 fps vid) as generic libav* (ffmpeg) option
# use framerate for 1 keyframe/sec, needed for seeks keyint_min=25 (or keyint_min=30 for x265) x264-params=keyint=25 (or x265-params-keyint=30 for x265)
About the error message:
FFStream::seek:
/run/media/terje/Videoklipp/Cineform/av1_yuv422p10le_LP.webm
retry limit, pos=207 tstmp=8280, err: Input/output error ** seek fail 207, 8280
Seeking Issues ( https://cinelerra-gg.org/download/CinelerraGG_Manual/Seeking_Issues.html)
If you have an issue playing a video and not seeing it in the
Compositor (just see a black
screen), it is most likely due to the media not being designed to be editable. It is most likely not damaged. Generally it just does not have keyframes which are needed for seeking which is what is done when you move around the media and start playing in the middle. The media plays just fine in the compositor if you always play from the beginning because then you don’t need keyframes to seek. You can get around this problem if you proxy the media. A good choice to use for the proxy would be use scalar, ffmpeg/mp4 and size of 1/2.
The proxied media can then seek and you will see it play in the compositor because keyframes exist.
Or use TRANSCODE which adds keyframes when media is not seekable (see Manual for details). This is particularly useful for the mkv container, which often has seek problems.
Just a reminder about the message below.
FFMPEG::open_decoder: some stream times estimated:
This is not a problem. Basically, when you open a file if a stream has a known duration, there is no message. If the duration is unknown, it is estimated by using the File Size and Bitrate to estimate the duration. ----------------------------------------
My AV1 (video only) test run procedure using CinGG loading a 10-bit input file, resulted in 12% smaller file size than with h265. Visually the AV1 output file seemingly is ok, but there are some CinGG output "FFStream::seek I/O errors, seek fails" I don't know what are !?
-- Cin mailing list [email protected] https://lists.cinelerra-gg.org/mailman/listinfo/cin
Den 07.08.2024 21:38, skrev Phyllis Smith via Cin:
g=30 keyint_min=30
Seems to work for av1.webm format -- still testing. I want to test Andrew's suggestions next.
On Wed, Aug 7, 2024 at 1:18 PM Andrew Randrianasulu <[email protected]> wrote:
On Wed, Aug 7, 2024 at 9:13 PM Phyllis Smith via Cin <[email protected]> wrote: > > Summary is that the error message is due to lack of keyframes and the workaround is to use Transcode. > BUT hopefully a better solution with the Render format parameters can be found. The render fix for h264/h265 formats is the addition of the lines below (which obviously is not pertinent to av1). I will see if I can find an alternative, but might not.
aomenc --help mentions
--kf-min-dist=<arg> Minimum keyframe interval (frames) --kf-max-dist=<arg> Maximum keyframe interval (frames)
and there seems to be way (aom-params) to pass libaom specific options via ffmpeg's ...
so .. aom-params=kf-min-dist=25:kf-max-dist=25 ?
for svt-av1 you hopefully can use just keyint= with svtav1-params line? command line svt av1 encoder seems to default for 5 seconds?
Also, may be add keyint_min=25 (for 25 fps vid) as generic libav* (ffmpeg) option
>> >> # use framerate for 1 keyframe/sec, needed for seeks >> keyint_min=25 (or keyint_min=30 for x265) >> x264-params=keyint=25 (or x265-params-keyint=30 for x265) > > > About the error message: >> >> FFStream::seek: /run/media/terje/Videoklipp/Cineform/av1_yuv422p10le_LP.webm >> retry limit, pos=207 tstmp=8280, err: Input/output error >> ** seek fail 207, 8280 > > > Seeking Issues (https://cinelerra-gg.org/download/CinelerraGG_Manual/Seeking_Issues.html) >> >> If you have an issue playing a video and not seeing it in the Compositor (just see a black >> screen), it is most likely due to the media not being designed to be editable. It is most likely >> not damaged. Generally it just does not have keyframes which are needed for seeking >> which is what is done when you move around the media and start playing in the middle. >> The media plays just fine in the compositor if you always play from the beginning because >> then you don’t need keyframes to seek. You can get around this problem if you proxy the >> media. A good choice to use for the proxy would be use scalar, ffmpeg/mp4 and size of 1/2. >> >> The proxied media can then seek and you will see it play in the compositor because keyframes exist. > > Or use TRANSCODE which adds keyframes when media is not seekable (see Manual for details). This is particularly useful for the mkv container, which often has seek problems. > > Just a reminder about the message below. >> >> FFMPEG::open_decoder: some stream times estimated: > > This is not a problem. Basically, when you open a file if a stream has a known duration, there is no message. If the duration is unknown, it is estimated by using the File Size and Bitrate to estimate the duration. > ----------------------------------------
@Andrew, @Phyllis Thank for your comments and suggestions, which I so far only have read while doing some alternative testing. First, to ensure this was correct understood: I didn't notice the same error messages using the same input file and rendering to h265.mp4 and h264.mp4 Now I have also tried to render the same input file using the (4.3x faster) av1_svt, but with the available 8-bit color depth in 10-bit mode: 17M av1_svt_yuv420p10le_SR.webm Below follows output messages with no error messages, so yes, I think some preset parameters possibly should be added to the av1_aom.webm: FFMPEG::open_decoder: some stream times estimated: /Videoklipp/Cineform/cfhd01.mkv Svt[info]: ------------------------------------------- Svt[info]: SVT [version]: SVT-AV1 Encoder Lib v1.8.0 Svt[info]: SVT [build] : GCC 10.3.1 20210422 (Red Hat 10.3.1-1) 64 bit Svt[info]: LIB Build date: Jul 31 2024 07:22:12 Svt[info]: ------------------------------------------- Svt[info]: Number of logical cores available: 20 Svt[info]: Number of PPCS 76 Svt[info]: [asm level on system : up to avx2] Svt[info]: [asm level selected : up to avx2] Svt[info]: ------------------------------------------- Svt[info]: SVT [config]: main profile tier (auto) level (auto) Svt[info]: SVT [config]: width / height / fps numerator / fps denominator : 1920 / 1080 / 25 / 1 Svt[info]: SVT [config]: bit-depth / color format : 10 / YUV420 Svt[info]: SVT [config]: preset / tune / pred struct : 10 / PSNR / random access Svt[info]: SVT [config]: gop size / mini-gop size / key-frame type : 161 / 16 / key frame Svt[info]: SVT [config]: BRC mode / rate factor : CRF / 35 Svt[info]: ------------------------------------------- FFMPEG::open_decoder: some stream times estimated: /Videoklipp/Cineform/cfhd01.mkv Render::render_single: Session finished. ** rendered 1780 frames in 51.541 secs, 34.536 fps FFMPEG::open_decoder: some stream times estimated: /Videoklipp/Cineform/av1_svt_yuv420p10le_SR.webm FFMPEG::open_decoder: some stream times estimated: /Videoklipp/Cineform/av1_svt_yuv420p10le_SR.webm FFMPEG::open_decoder: some stream times estimated: /Videoklipp/Cineform/av1_svt_yuv420p10le_SR.webm FFMPEG::open_decoder: some stream times estimated: /Videoklipp/Cineform/cfhd01.mkv
Terje, thanks for noting the problem with av1.webm to our attention. I will fix it by adding the g=30 and keyint_min=30 to that render format. "h265.mp4 and h264.mp4" always work because of the addition of the lines "# use framerate for 1 keyframe/sec, needed for seeks; keyint_min=25;x264-params keyint=25". So the new lines for av1.webm of "g=30 and keyint_min=30" is the equivalent. Andrew, I tried using --kf-min-dist=30 and -kf-max-dist=30 and it rendered but the output was not playable. So since the above solution worked, I just will use the above instead. Still have to test av1_svt... next. On Wed, Aug 7, 2024 at 2:52 PM Terje J. Hanssen <[email protected]> wrote:
Den 07.08.2024 21:38, skrev Phyllis Smith via Cin:
g=30
keyint_min=30
Seems to work for av1.webm format -- still testing. I want to test Andrew's suggestions next.
On Wed, Aug 7, 2024 at 1:18 PM Andrew Randrianasulu < [email protected]> wrote:
On Wed, Aug 7, 2024 at 9:13 PM Phyllis Smith via Cin <[email protected]> wrote:
Summary is that the error message is due to lack of keyframes and the
workaround is to use Transcode.
BUT hopefully a better solution with the Render format parameters can be found. The render fix for h264/h265 formats is the addition of the lines below (which obviously is not pertinent to av1). I will see if I can find an alternative, but might not.
aomenc --help mentions
--kf-min-dist=<arg> Minimum keyframe interval (frames) --kf-max-dist=<arg> Maximum keyframe interval (frames)
and there seems to be way (aom-params) to pass libaom specific options via ffmpeg's ...
so .. aom-params=kf-min-dist=25:kf-max-dist=25 ?
for svt-av1 you hopefully can use just keyint= with svtav1-params line? command line svt av1 encoder seems to default for 5 seconds?
Also, may be add keyint_min=25 (for 25 fps vid) as generic libav* (ffmpeg) option
# use framerate for 1 keyframe/sec, needed for seeks keyint_min=25 (or keyint_min=30 for x265) x264-params=keyint=25 (or x265-params-keyint=30 for x265)
About the error message:
FFStream::seek:
/run/media/terje/Videoklipp/Cineform/av1_yuv422p10le_LP.webm
retry limit, pos=207 tstmp=8280, err: Input/output error ** seek fail 207, 8280
Seeking Issues ( https://cinelerra-gg.org/download/CinelerraGG_Manual/Seeking_Issues.html)
If you have an issue playing a video and not seeing it in the
Compositor (just see a black
screen), it is most likely due to the media not being designed to be editable. It is most likely not damaged. Generally it just does not have keyframes which are needed for seeking which is what is done when you move around the media and start playing in the middle. The media plays just fine in the compositor if you always play from the beginning because then you don’t need keyframes to seek. You can get around this problem if you proxy the media. A good choice to use for the proxy would be use scalar, ffmpeg/mp4 and size of 1/2.
The proxied media can then seek and you will see it play in the compositor because keyframes exist.
Or use TRANSCODE which adds keyframes when media is not seekable (see Manual for details). This is particularly useful for the mkv container, which often has seek problems.
Just a reminder about the message below.
FFMPEG::open_decoder: some stream times estimated:
This is not a problem. Basically, when you open a file if a stream has a known duration, there is no message. If the duration is unknown, it is estimated by using the File Size and Bitrate to estimate the duration. ----------------------------------------
@Andrew, @Phyllis
Thank for your comments and suggestions, which I so far only have read while doing some alternative testing.
First, to ensure this was correct understood: I didn't notice the same error messages using the same input file and rendering to h265.mp4 and h264.mp4
Now I have also tried to render the same input file using the (4.3x faster) av1_svt, but with the available 8-bit color depth in 10-bit mode: 17M av1_svt_yuv420p10le_SR.webm
Below follows output messages with no error messages, so yes, I think some preset parameters possibly should be added to the av1_aom.webm:
FFMPEG::open_decoder: some stream times estimated: /Videoklipp/Cineform/cfhd01.mkv Svt[info]: ------------------------------------------- Svt[info]: SVT [version]: SVT-AV1 Encoder Lib v1.8.0 Svt[info]: SVT [build] : GCC 10.3.1 20210422 (Red Hat 10.3.1-1) 64 bit Svt[info]: LIB Build date: Jul 31 2024 07:22:12 Svt[info]: ------------------------------------------- Svt[info]: Number of logical cores available: 20 Svt[info]: Number of PPCS 76 Svt[info]: [asm level on system : up to avx2] Svt[info]: [asm level selected : up to avx2] Svt[info]: ------------------------------------------- Svt[info]: SVT [config]: main profile tier (auto) level (auto) Svt[info]: SVT [config]: width / height / fps numerator / fps denominator : 1920 / 1080 / 25 / 1 Svt[info]: SVT [config]: bit-depth / color format : 10 / YUV420 Svt[info]: SVT [config]: preset / tune / pred struct : 10 / PSNR / random access Svt[info]: SVT [config]: gop size / mini-gop size / key-frame type : 161 / 16 / key frame Svt[info]: SVT [config]: BRC mode / rate factor : CRF / 35 Svt[info]: ------------------------------------------- FFMPEG::open_decoder: some stream times estimated: /Videoklipp/Cineform/cfhd01.mkv Render::render_single: Session finished. ** rendered 1780 frames in 51.541 secs, 34.536 fps FFMPEG::open_decoder: some stream times estimated: /Videoklipp/Cineform/av1_svt_yuv420p10le_SR.webm FFMPEG::open_decoder: some stream times estimated: /Videoklipp/Cineform/av1_svt_yuv420p10le_SR.webm FFMPEG::open_decoder: some stream times estimated: /Videoklipp/Cineform/av1_svt_yuv420p10le_SR.webm FFMPEG::open_decoder: some stream times estimated: /Videoklipp/Cineform/cfhd01.mkv
It looks like SVT automatically sets gop (Group of Pictures) and inserts Keyframes in looking at Terje's output line: "Svt[info]: SVT [config]: gop size / mini-gop size / key-frame type : 161 / 16 / key frame" and I get the same type of results that he did. But I also get a warning, which I hope is innocuous; should be or else it would have been "error" instead of "warn"! "Svt[warn]: Failed to set thread priority: Invalid argument" Now I have also tried to render the same input file using the (4.3x faster)
av1_svt, but with the available 8-bit color depth in 10-bit mode: 17M av1_svt_yuv420p10le_SR.webm
Below follows output messages with no error messages, so yes, I think some preset parameters possibly should be added to the av1_aom.webm:
If there isn't other reasons against it, I will suggest to rename the current preset av1.webm to av1_aom.webm This way it inform the users which encoder it is, and also follows the related naming convention av1_svt, av1_vaapi, and possibly additional ffmpeg supported av1_encoders av1-rav1e and avif (image), and additional av1_hwaccels methods (qsv, amf, nvenc) later. And possibly upgrade to svt-av1 v.2.1. Transcoding regarding duration was also mentioned above. My input file here was a cfhd transcoded with ffmpeg from a Prores 422 hq source video file (that is not a arbitrary cut). Alt. 1) Therefore I went back to my source Prores 422 (HQ) hd01.mov which especially default includes 16 channels LPCM audio, even though only 2 ch stereo is used. ffprobe -hide_banner hd01.mov Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'hd01.mov': Metadata: creation_time : 2016-02-23T23:49:21.000000Z Duration: 00:01:11.28, start: 0.000000, bitrate: 200496 kb/s Stream #0:0[0x1](eng): Video: prores (HQ) (apch / 0x68637061), yuv422p10le(bt709, top coded first (swapped)), 1920x1080, 182130 kb/s, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 2500 tbn (default) Metadata: creation_time : 2016-02-23T23:49:21.000000Z handler_name : Apple Video Media Handler vendor_id : appl encoder : Apple ProRes 422 (HQ) Stream #0:1[0x2](eng): Audio: pcm_s24le (lpcm / 0x6D63706C), 48000 Hz, 16 channels, s32 (24 bit), 18432 kb/s (default) Metadata: creation_time : 2016-02-23T23:49:21.000000Z handler_name : Apple Sound Media Handler vendor_id : [0][0][0][0] Loaded this Prores 422 hq source file into CinGG 1) Video only rendering - no error messages Rendering to file /Videoklipp/Cineform/av1_aom_yuv422p10le.webm File format; FFMPEG webm Video only wrench: av1.webm | yuv422p10le cin Cinelerra Infinity - built: Jul 29 2024 01:18:06 .... Render::render_single: Session finished. ** rendered 1781 frames in 187.108 secs, 9.519 fps FFMPEG::open_decoder: some stream times estimated: /run/media/terje/Videoklipp/Cineform/av1_aom_yuv422p10le.webm FFMPEG::open_decoder: some stream times estimated: /run/media/terje/Videoklipp/Cineform/av1_aom_yuv422p10le.webm FFMPEG::open_decoder: some stream times estimated: /run/media/terje/Videoklipp/Cineform/av1_aom_yuv422p10le.webm Total excess of backups: -50 Session time: 0:05:08 Cpu time: user: 0:20:00.969 sys: 0:00:08.355 2) Audio only rendering - not possible in CinGG Cinelerra Infinity - built: Jul 29 2024 01:18:06 - 16 channels lpcm audio (actually only #1 and #2 stereo used) Rendering to file /Videoklipp/Cineform/opus.webm File format; FFMPEG webm Audio only wrench: opus.webm [libopus @ 0x7f637c06a6c0] Opus mapping family undefined for 16 channels. FFMPEG::open_encoder err: Invalid argument int FFMPEG::open_encoder(const char*, const char*): open failed libopus:/run/media/terje/Videoklipp/Cineform/opus.webm Render::render_single: Session finished. Total excess of backups: -50 Session time: 0:02:21 Cpu time: user: 0:00:13.680 sys: 0:00:02.102 ----------------- Alt. 2) Transcoded alt. 1) source input file to Prores 422 hq with 2 ch stereo audio: ffmpeg -hide_banner -i hd01.mov -map_metadata 0 -c:v copy -c:a pcm_s24le -ac 2 hd02.mov ffprobe -hide_banner hd02.mov Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'hd02.mov': Metadata: major_brand : qt minor_version : 512 compatible_brands: qt creation_time : 2016-02-23T23:49:21.000000Z encoder : Lavf61.1.100 Duration: 00:01:11.28, start: 0.000000, bitrate: 184335 kb/s Stream #0:0[0x1](eng): Video: prores (HQ) (apch / 0x68637061), yuv422p10le(bt709, top coded first (swapped)), 1920x1080, 182130 kb/s, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 10k tbn (default) Metadata: creation_time : 2016-02-23T23:49:21.000000Z handler_name : Apple Video Media Handler vendor_id : FFMP encoder : Apple ProRes 422 (HQ) Stream #0:1[0x2](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, stereo, s32 (24 bit), 2304 kb/s (default) Metadata: creation_time : 2016-02-23T23:49:21.000000Z handler_name : Apple Sound Media Handler vendor_id : [0][0][0][0] ----------------- Alt. 3) Transcoded th source file Prores 422 (HQ) with LPCM audio to CFHD quality 7 (high+), AAC audio (default) to stereo (-ac 2) and Metadata (some) ffmpeg -hide_banner -i hd01.mov -map_metadata 0 -c:v cfhd -quality 7 -ac 2 cfhd01.mov ffprobe -hide_banner cfhd01.mov Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'cfhd01.mov': Metadata: major_brand : qt minor_version : 512 compatible_brands: qt creation_time : 2016-02-23T23:49:21.000000Z encoder : Lavf61.1.100 Duration: 00:01:11.28, start: 0.000000, bitrate: 181871 kb/s Stream #0:0[0x1](eng): Video: cfhd (CFHD / 0x44484643), yuv422p10le(bt709, top coded first (swapped)), 1920x1080, 181846 kb/s, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 12800 tbn (default) Metadata: creation_time : 2016-02-23T23:49:21.000000Z handler_name : Apple Video Media Handler vendor_id : FFMP encoder : Lavc61.3.100 cfhd Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 122 kb/s (default) Metadata: creation_time : 2016-02-23T23:49:21.000000Z handler_name : Apple Sound Media Handler vendor_id : [0][0][0][0] By loading Alt. 2) Prores LPCM or Alt. 3) CFHD AAC with 2 ch stereo audio into CinGG 1) Video only av1_aom.webm rendering caused the previous FFseek I/O errors 2) Audio only hd02.mov stereo lpcm -> opus.webm worked ok cin Cinelerra Infinity - built: Jul 29 2024 01:18:06 ........ Render::render_single: Session finished. ** rendered 1781 frames in 6.387 secs, 278.848 fps FFMPEG::open_decoder: some stream times estimated: /run/media/terje/Videoklipp/Cineform/opus.webm audio0 pad 16 0 (16) FFMPEG::open_decoder: some stream times estimated: /run/media/terje/Videoklipp/Cineform/opus.webm Total excess of backups: -50 Session time: 0:01:49 Cpu time: user: 0:00:15.458 sys: 0:00:02.457
Den 09.08.2024 14:20, skrev Terje J. Hanssen:
If there isn't other reasons against it, I will suggest to rename the current preset av1.webm to av1_aom.webm This way it inform the users which encoder it is, and also follows the related naming convention av1_svt, av1_vaapi, and possibly additional ffmpeg supported av1_encoders av1-rav1e and avif (image), and additional av1_hwaccels methods (qsv, amf, nvenc) later. And possibly upgrade to svt-av1 v.2.1.
Transcoding regarding duration was also mentioned above. My input file here was a cfhd transcoded with ffmpeg from a Prores 422 hq source video file (that is not a arbitrary cut).
....snip
Alt. 2) Transcoded alt. 1) source input file to Prores 422 hq with 2 ch stereo audio:
ffmpeg -hide_banner -i hd01.mov -map_metadata 0 -c:v copy -c:a pcm_s24le -ac 2 hd02.mov
....snip
Alt. 3) Transcoded th source file Prores 422 (HQ) with LPCM audio to CFHD quality 7 (high+), AAC audio (default) to stereo (-ac 2) and Metadata (some)
ffmpeg -hide_banner -i hd01.mov -map_metadata 0 -c:v cfhd -quality 7 -ac 2 cfhd01.mov
I tried CinGG rendering with three different set of Video av1_aom.web parameters g=30, keyint_min=30 (Phyllis tested and suggested) g=25, keyint_min=25 (as Andrew suggested for 25 fps video) These rendered fine both video and audio at the same time for Alt. 2) hd02.mov and Alt. 2) cfhd01.mov above without seek errors. Additional I tried the suggestion according to the FFmpeg AV1 Video Encoding Guide - Keyframe placement (libaom) https://trac.ffmpeg.org/wiki/Encode/AV1#Keyframeplacement The -g option can be used to set the maximum keyframe interval. Anything up to 10 seconds is considered reasonable for most content, so for 30 frames per second content one would use -g 300, for 60 fps content -g 600, etc. That is for my 25 fps video: g=250, keyint_min=250 I got also this to work some faster, but for some or another reason sometime for Alt. 3) cfhd01.mov above with some minor seek fails as follows: Render::render_single: Session finished. ** rendered 1782 frames in 239.273 secs, 7.448 fps FFMPEG::open_decoder: some stream times estimated: /Videoklipp/Cineform/av1_aom_yuv422p10le+opus.webm FFMPEG::open_decoder: some stream times estimated: /Videoklipp/Cineform/av1_aom_yuv422p10le+opus.webm audio0 pad 16 -335 (351) FFMPEG::open_decoder: some stream times estimated: /Videoklipp/Cineform/av1_aom_yuv422p10le+opus.webm FFMPEG::open_decoder: some stream times estimated: /Videoklipp/Cineform/av1_aom_yuv422p10le+opus.webm ** seek fail 1175, 47000 ** seek fail 1400, 56000 ** seek fail 1650, 66000 Total excess of backups: -50 Session time: 0:05:24 Cpu time: user: 0:24:33.035 sys: 0:00:06.072 Olympic handball now :)
If there isn't other reasons against it, I will suggest to rename the current preset av1.webm to av1_aom.webm
Good suggestion and no one has noted any reason not to. It is done in GIT along with adding the 2 lines that make the rendered file seekable.
And possibly upgrade to svt-av1 v.2.1.
Agreed -- I started working on this on May 29, but had some trouble. I will try harder! I am still pondering the below information. Transcoding regarding duration was also mentioned above. My input file here was a cfhd transcoded with ffmpeg from a Prores 422 hq source video file (that is not a arbitrary cut). Alt. 1) Therefore I went back to my source Prores 422 (HQ) hd01.mov which especially default includes 16 channels LPCM audio, even though only 2 ch stereo is used. ffprobe -hide_banner hd01.mov Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'hd01.mov': Metadata: creation_time : 2016-02-23T23:49:21.000000Z Duration: 00:01:11.28, start: 0.000000, bitrate: 200496 kb/s Stream #0:0[0x1](eng): Video: prores (HQ) (apch / 0x68637061), yuv422p10le(bt709, top coded first (swapped)), 1920x1080, 182130 kb/s, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 2500 tbn (default) Metadata: creation_time : 2016-02-23T23:49:21.000000Z handler_name : Apple Video Media Handler vendor_id : appl encoder : Apple ProRes 422 (HQ) Stream #0:1[0x2](eng): Audio: pcm_s24le (lpcm / 0x6D63706C), 48000 Hz, 16 channels, s32 (24 bit), 18432 kb/s (default) Metadata: creation_time : 2016-02-23T23:49:21.000000Z handler_name : Apple Sound Media Handler vendor_id : [0][0][0][0] Loaded this Prores 422 hq source file into CinGG 1) Video only rendering - no error messages Rendering to file /Videoklipp/Cineform/av1_aom_yuv422p10le.webm File format; FFMPEG webm Video only wrench: av1.webm | yuv422p10le cin Cinelerra Infinity - built: Jul 29 2024 01:18:06 .... Render::render_single: Session finished. ** rendered 1781 frames in 187.108 secs, 9.519 fps FFMPEG::open_decoder: some stream times estimated: /run/media/terje/Videoklipp/Cineform/av1_aom_yuv422p10le.webm FFMPEG::open_decoder: some stream times estimated: /run/media/terje/Videoklipp/Cineform/av1_aom_yuv422p10le.webm FFMPEG::open_decoder: some stream times estimated: /run/media/terje/Videoklipp/Cineform/av1_aom_yuv422p10le.webm Total excess of backups: -50 Session time: 0:05:08 Cpu time: user: 0:20:00.969 sys: 0:00:08.355 2) Audio only rendering - not possible in CinGG Cinelerra Infinity - built: Jul 29 2024 01:18:06 - 16 channels lpcm audio (actually only #1 and #2 stereo used) Rendering to file /Videoklipp/Cineform/opus.webm File format; FFMPEG webm Audio only wrench: opus.webm [libopus @ 0x7f637c06a6c0] Opus mapping family undefined for 16 channels. FFMPEG::open_encoder err: Invalid argument int FFMPEG::open_encoder(const char*, const char*): open failed libopus:/run/media/terje/Videoklipp/Cineform/opus.webm Render::render_single: Session finished. Total excess of backups: -50 Session time: 0:02:21 Cpu time: user: 0:00:13.680 sys: 0:00:02.102 ----------------- Alt. 2) Transcoded alt. 1) source input file to Prores 422 hq with 2 ch stereo audio: ffmpeg -hide_banner -i hd01.mov -map_metadata 0 -c:v copy -c:a pcm_s24le -ac 2 hd02.mov ffprobe -hide_banner hd02.mov Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'hd02.mov': Metadata: major_brand : qt minor_version : 512 compatible_brands: qt creation_time : 2016-02-23T23:49:21.000000Z encoder : Lavf61.1.100 Duration: 00:01:11.28, start: 0.000000, bitrate: 184335 kb/s Stream #0:0[0x1](eng): Video: prores (HQ) (apch / 0x68637061), yuv422p10le(bt709, top coded first (swapped)), 1920x1080, 182130 kb/s, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 10k tbn (default) Metadata: creation_time : 2016-02-23T23:49:21.000000Z handler_name : Apple Video Media Handler vendor_id : FFMP encoder : Apple ProRes 422 (HQ) Stream #0:1[0x2](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, stereo, s32 (24 bit), 2304 kb/s (default) Metadata: creation_time : 2016-02-23T23:49:21.000000Z handler_name : Apple Sound Media Handler vendor_id : [0][0][0][0] ----------------- Alt. 3) Transcoded th source file Prores 422 (HQ) with LPCM audio to CFHD quality 7 (high+), AAC audio (default) to stereo (-ac 2) and Metadata (some) ffmpeg -hide_banner -i hd01.mov -map_metadata 0 -c:v cfhd -quality 7 -ac 2 cfhd01.mov ffprobe -hide_banner cfhd01.mov Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'cfhd01.mov': Metadata: major_brand : qt minor_version : 512 compatible_brands: qt creation_time : 2016-02-23T23:49:21.000000Z encoder : Lavf61.1.100 Duration: 00:01:11.28, start: 0.000000, bitrate: 181871 kb/s Stream #0:0[0x1](eng): Video: cfhd (CFHD / 0x44484643), yuv422p10le(bt709, top coded first (swapped)), 1920x1080, 181846 kb/s, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 12800 tbn (default) Metadata: creation_time : 2016-02-23T23:49:21.000000Z handler_name : Apple Video Media Handler vendor_id : FFMP encoder : Lavc61.3.100 cfhd Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 122 kb/s (default) Metadata: creation_time : 2016-02-23T23:49:21.000000Z handler_name : Apple Sound Media Handler vendor_id : [0][0][0][0] By loading Alt. 2) Prores LPCM or Alt. 3) CFHD AAC with 2 ch stereo audio into CinGG 1) Video only av1_aom.webm rendering caused the previous FFseek I/O errors 2) Audio only hd02.mov stereo lpcm -> opus.webm worked ok cin Cinelerra Infinity - built: Jul 29 2024 01:18:06 ........ Render::render_single: Session finished. ** rendered 1781 frames in 6.387 secs, 278.848 fps FFMPEG::open_decoder: some stream times estimated: /run/media/terje/Videoklipp/Cineform/opus.webm audio0 pad 16 0 (16) FFMPEG::open_decoder: some stream times estimated: /run/media/terje/Videoklipp/Cineform/opus.webm Total excess of backups: -50 Session time: 0:01:49 Cpu time: user: 0:00:15.458 sys: 0:00:02.457
Den 11.08.2024 20:36, skrev Phyllis Smith:
If there isn't other reasons against it, I will suggest to rename the current preset av1.webm to av1_aom.webm
Good suggestion and no one has noted any reason not to. It is done in GIT along with adding the 2 lines that make the rendered file seekable.
And possibly upgrade to svt-av1 v.2.1.
Agreed -- I started working on this on May 29, but had some trouble. I will try harder!
I am still pondering the below information.
Transcoding regarding duration was also mentioned above. My input file here was a cfhd transcoded with ffmpeg from a Prores 422 hq source video file (that is not a arbitrary cut).
Alt. 1) Therefore I went back to my source Prores 422 (HQ) hd01.mov which especially default includes 16 channels LPCM audio, even though only 2 ch stereo is used.
Loaded this Prores 422 hq source file into CinGG
1) Video only rendering - no error messages
Rendering to file /Videoklipp/Cineform/av1_aom_yuv422p10le.webm File format; FFMPEG webm Video only wrench: av1.webm | yuv422p10le cin Cinelerra Infinity - built: Jul 29 2024 01:18:06 .... Render::render_single: Session finished. ** rendered 1781 frames in 187.108 secs, 9.519 fps
FFMPEG::open_decoder: some stream times estimated: /run/media/terje/Videoklipp/Cineform/av1_aom_yuv422p10le.webm FFMPEG::open_decoder: some stream times estimated: /run/media/terje/Videoklipp/Cineform/av1_aom_yuv422p10le.webm FFMPEG::open_decoder: some stream times estimated: /run/media/terje/Videoklipp/Cineform/av1_aom_yuv422p10le.webm Total excess of backups: -50 Session time: 0:05:08 Cpu time: user: 0:20:00.969 sys: 0:00:08.355
2) Audio only rendering - not possible in CinGG
Cinelerra Infinity - built: Jul 29 2024 01:18:06 - 16 channels lpcm audio (actually only #1 and #2 stereo used)
Rendering to file /Videoklipp/Cineform/opus.webm File format; FFMPEG webm Audio only wrench: opus.webm
[libopus @ 0x7f637c06a6c0] Opus mapping family undefined for 16 channels. FFMPEG::open_encoder err: Invalid argument int FFMPEG::open_encoder(const char*, const char*): open failed libopus:/run/media/terje/Videoklipp/Cineform/opus.webm Render::render_single: Session finished. Total excess of backups: -50 Session time: 0:02:21 Cpu time: user: 0:00:13.680 sys: 0:00:02.102
-----------------
Alt. 2) Transcoded alt. 1) source input file to Prores 422 hq with 2 ch stereo audio:
ffmpeg -hide_banner -i hd01.mov -map_metadata 0 -c:v copy -c:a pcm_s24le -ac 2 hd02.mov
-----------------
Alt. 3) Transcoded th source file Prores 422 (HQ) with LPCM audio to CFHD quality 7 (high+), AAC audio (default) to stereo (-ac 2) and Metadata (some)
ffmpeg -hide_banner -i hd01.mov -map_metadata 0 -c:v cfhd -quality 7 -ac 2 cfhd01.mov
By loading Alt. 2) Prores LPCM or Alt. 3) CFHD AAC with 2 ch stereo audio into CinGG
1) Video only av1_aom.webm rendering caused the previous FFseek I/O errors
Especially that rendering Alt. 2) Prores with 2 ch audio caused FFseek I/O errors confused me, because the video part was just copied from the original Alt.1) that worked fine.
2) Audio only hd02.mov stereo lpcm -> opus.webm worked ok
cin Cinelerra Infinity - built: Jul 29 2024 01:18:06 ........ Render::render_single: Session finished. ** rendered 1781 frames in 6.387 secs, 278.848 fps
FFMPEG::open_decoder: some stream times estimated: /run/media/terje/Videoklipp/Cineform/opus.webm audio0 pad 16 0 (16) FFMPEG::open_decoder: some stream times estimated: /run/media/terje/Videoklipp/Cineform/opus.webm Total excess of backups: -50 Session time: 0:01:49 Cpu time: user: 0:00:15.458 sys: 0:00:02.457
participants (3)
-
Andrew Randrianasulu -
Phyllis Smith -
Terje J. Hanssen