вс, 17 дек. 2023 г., 15:29 Terje J. Hanssen <[email protected]>:
Den 17.12.2023 00:05, skrev Andrew Randrianasulu:
пт, 15 дек. 2023 г., 21:10 Terje J. Hanssen via Cin < [email protected]>:
Den 14.12.2023 12:25, skrev Terje J. Hanssen:
First, a summary from another current post and thread: https://lists.cinelerra-gg.org/pipermail/cin/2023-December/007430.html
I will add the re-encoded sample *SD DV *file using ffmpeg SVT-AV1, as I was positive surprised how much faster (preset 10 about 25 sec) it was than rendering AV1 with CinGG (libaom?) . I've tested three presets: 8, 10 and 12. "Useable visible quality" for all.
ffmpeg -i dv01_07.dv -c:v libsvtav1 -preset 8 -crf 35 -c:a libvorbis dv01_07_svt-av1_pr8.webm frame= 2832 fps= 66 q=35.0 Lsize= 28836kB time=00:01:53.26 bitrate=2085.6kbits/s speed=2.65x
ffmpeg -i dv01_07.dv -c:v libsvtav1 -preset 10 -crf 35 -c:a libvorbis dv01_07_svt-av1_pr10.webm frame= 2832 *fps=112* q=35.0 Lsize= 34419kB time=00:01:53.26 bitrate=2489.4kbits/s speed=4.47x
ffmpeg -i dv01_07.dv -c:v libsvtav1 -preset 12 -crf 35 -c:a libvorbis dv01_07_svt-av1_pr12.webm frame= 2832 fps=262 q=35.0 Lsize= 35913kB time=00:01:53.26 bitrate=2597.5kbits/s speed=10.5x
The speed of SVT-AV1 encoding seems for me to be quite useable, at least for personal use.
As a reference to compare the SVT-AV1 results above, I've also tried to encode the same input file using libaom-av1 and librav1e with simple or none (default) parameters. Other, optimal tuned parameters may possibly change the unsuccesful results here. Seemingly something have to be wrong here, as I had to quit these hopeless SLOW encoding attemps after a while:
ffmpeg -i dv01_07.dv -c:v libaom-av1 -crf 30 -c:a libvorbis dv01_07_libaom-av1.webm ^C^Ze= 35 fps=0.1 q=0.0 size= 5kB time=00:00:03.00 bitrate= 13.7kbits/s speed=0.00748x
ffmpeg -i dv01_07.dv -c:v librav1e -c:a libvorbis dv01_07_librav1e.webm frame= 471 fps=1.9 q=-0.0 Lsize= 4864kB time=00:00:19.11 bitrate=2084.4kbits/s speed=0.0791x
The CPU (i7 quad-cores 8 threads) utilization was here between 100-200%, while I think it ran at 700%+ for SVT-AV1.
Anyway, apparently SVT-AV1 libsvtav1 shines as the superiour fastest and simple to use CPU based AV1 encoder (before GPU hwaccels)
After rebuilding SVT-AV1 on termux for Neon acceleration I tried three variations of same file:
du -h av1-1.8.0* 5.0M av1-1.8.0-pr12.webm 4.3M av1-1.8.0-pr2.webm 4.6M av1-1.8.0.webm
all on crf 30
ffmpeg -i 20081103140154.m2t -c:v libsvtav1 -an -preset 2 -crf 30 av1-1.8.0-pr2.webm
this one run at 0.2 fps
ffmpeg -i 20081103140154.m2t -c:v libsvtav1 -an -preset 12 -crf 30 av1-1.8.0-pr12.webm
this one run up to 9.4 fps!
ffmpeg -i 20081103140154.m2t -c:v libsvtav1 -an -preset 6 -crf 30 av1-1.8.0.webm
and this one run at 1.3 fps.
all files encoded from same input:
Stream #0:0[0x810]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, bt709, top first), 1440x1080 [SAR 4:3 DAR 16:9], 25000 kb/s, 25 fps, 25 tbr, 90k tbn
So, I guess on aarch64 tablet this one definitely not as fast as on desktop (x86_64) Intel.
I also noticed this post 1 (yr. ago) on reddit, "SVT-AV1 on ARM" https://www.reddit.com/r/AV1/comments/z9fo51/svtav1_on_arm/
---------------------
So, regarding my initial "FHD (yuv422p10le)" below, where the audio was lost during transcode from .mov to AV1 .webm: I have tried to interpret and experiment with FFMpeg's "Selecting streams with the -map option" https://trac.ffmpeg.org/wiki/Map
ffprobe tells pcm_s24leand 16 channels in the Audio stream of the PreRes input file hd01.mov:
Stream #0:0(eng): Video: prores (HQ) (apch / 0x68637061), yuv422p10le(tv, bt709/unknown/unknown, top coded first (swapped)), 1920x1080, 182130 kb/s, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 2500 tbn, 2500 tbc (default) Stream #0:1(eng): Audio: pcm_s24le (lpcm / 0x6D63706C), 48000 Hz, 16 channels, s32 (24 bit), 18432 kb/s (default)
VLC playback the audio ok for the input file. So I tried a similar stream map for transcode, but without success: Still no audio.
Is there possibility that you just hear 'empty'/silent channels? Are they all contain some audio, or some are silent? Obviously I'm wrong applying this stream map numbering (just in case
someone see the fault without using much energy on it)?
example from "man ffmpeg" says: ===== For example, assuming INPUT is a stereo audio file, you can switch the two audio channels with the following command: ffmpeg -i INPUT -map_channel 0.0.1 -map_channel 0.0.0 OUTPUT If you want to mute the first channel and keep the second: ffmpeg -i INPUT -map_channel -1 -map_channel 0.0.1 OUTPUT The order of the "-map_channel" option specifies the order of the channels in the output stream. The output channel layout is guessed from the number of channels mapped (mono if one "-map_channel", stereo if two, etc.). Using "-ac" in combination of "-map_channel" makes the channel gain levels to be updated if input and output channel layouts don't match (for instance two "-map_channel" options and "-ac 6"). ===== But may be you better to ask on ffmpeg-users mail list, not sure if anyone was dealing with input files with such high number of channels there recently, but it feels a bit more populated than our corner!
ffmpeg -i hd01.mov -map 0:v -map 0:a -c:v libsvtav1 -preset 10 -crf 35 -c:a libvorbis hd01_mov_svt-av1_pr10.webm
Ref: https://ottverse.com/analysis-of-svt-av1-presets-and-crf-values/
Here I add my latest test results for a *HDV (fps=69)* and a *FHD (fps=51)* video clip.
2.0G hdv01_04.m2t 383M hdv01_04_m2t_svt-av1_pr10.webm
1.7G hd01.mov 20M hd01_mov_svt-av1_pr10.webm
*HDV* (yuv420p) -------
*ffprobe -hide_banner hdv01_04.m2t* [mpeg2video @ 0x560c32966340] Invalid frame dimensions 0x0. Last message repeated 7 times [mpegts @ 0x560c32960c00] PES packet size mismatch [mpegts @ 0x560c32960c00] Packet corrupt (stream = 1, dts = 295380000). [mpegts @ 0x560c32960c00] Could not find codec parameters for stream 2 (Unknown: none ([160][0][0][0] / 0x00A0)): unknown codec Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options [mpegts @ 0x560c32960c00] Could not find codec parameters for stream 3 (Unknown: none ([161][0][0][0] / 0x00A1)): unknown codec Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options Input #0, mpegts, from 'hdv01_04.m2t': Duration: 00:10:57.34, start: 2624.856000, bitrate: 26134 kb/s Program 100 Stream #0:0[0x810]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, bt709, top first), 1440x1080 [SAR 4:3 DAR 16:9], 25000 kb/s, 25 fps, 25 tbr, 90k tbn Side data: cpb: bitrate max/min/avg: 25000000/0/0 buffer size: 7340032 vbv_delay: N/A Stream #0:1[0x814]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, fltp, 384 kb/s Stream #0:2[0x815]: Unknown: none ([160][0][0][0] / 0x00A0) Stream #0:3[0x811]: Unknown: none ([161][0][0][0] / 0x00A1) Unsupported codec with id 0 for input stream 2 Unsupported codec with id 0 for input stream 3 --------------
*ffmpeg -i hdv01_04.m2t -c:v libsvtav1 -preset 10 -crf 35 -c:a libvorbis hdv01_04_m2t_svt-av1_pr10.webm* frame=16420 *fps= 69* q=34.0 Lsize= 391289kB time=00:10:57.36 bitrate=4876.2kbits/s speed=2.77x
*ffprobe -hide_banner hdv01_04_m2t_svt-av1_pr10.webm* [libdav1d @ 0x562b42305540] libdav1d 1.3.0 Input #0, matroska,webm, from 'hdv01_04_m2t_svt-av1_pr10.webm': Metadata: ENCODER : Lavf60.3.100 Duration: 00:10:57.40, start: 0.000000, bitrate: 4875 kb/s Stream #0:0: Video: av1 (Main), yuv420p(tv, bt709), 1440x1080, SAR 4:3 DAR 16:9, 25 fps, 25 tbr, 1k tbn Metadata: ENCODER : Lavc60.3.100 libsvtav1 DURATION : 00:10:57.403000000 Stream #0:1: Audio: vorbis, 48000 Hz, stereo, fltp Metadata: ENCODER : Lavc60.3.100 libvorbis DURATION : 00:10:57.171000000 [libdav1d @ 0x562b42361540] libdav1d 1.3.0
*FHD* *(*yuv422p10le*)* -----
*ffprobe 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]
* ffmpeg -i hd01.mov -c:v libsvtav1 -preset 10 -crf 35 -c:a libvorbis hd01_mov_svt-av1_pr10.webm* frame= 1781 *fps= 51* q=35.0 Lsize= 19732kB time=00:01:11.26 bitrate=2268.3kbits/s speed=2.03x
*ffprobe -hide_banner hdv01_04_m2t_svt-av1_pr10.webm* [libdav1d @ 0x562b42305540] libdav1d 1.3.0 Input #0, matroska,webm, from 'hdv01_04_m2t_svt-av1_pr10.webm': Metadata: ENCODER : Lavf60.3.100 Duration: 00:10:57.40, start: 0.000000, bitrate: 4875 kb/s Stream #0:0: Video: av1 (Main), yuv420p(tv, bt709), 1440x1080, SAR 4:3 DAR 16:9, 25 fps, 25 tbr, 1k tbn Metadata: ENCODER : Lavc60.3.100 libsvtav1 DURATION : 00:10:57.403000000 Stream #0:1: Audio: vorbis, 48000 Hz, stereo, fltp Metadata: ENCODER : Lavc60.3.100 libvorbis DURATION : 00:10:57.171000000
An issue is that the audio was lost during the conversion from .mov to .webm, so I attach the full ffmpeg output below. (possibly a mis-match regarding the audio stream #numbers ?)
*ffmpeg -i hd01.mov -c:v libsvtav1 -preset 10 -crf 35 -c:a libvorbis hd01_mov_svt-av1_pr10.webm* ... Guessed Channel Layout for Input Stream #0.1 : hexadecagonal 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] Stream mapping: Stream #0:0 -> #0:0 (prores (native) -> av1 (libsvtav1)) Stream #0:1 -> #0:1 (pcm_s24le (native) -> vorbis (libvorbis)) Press [q] to stop, [?] for help Svt[info]: ------------------------------------------- Svt[info]: SVT [version]: SVT-AV1 Encoder Lib v1.7.0 Svt[info]: SVT [build] : GCC 13.2.1 20230912 [revision b96e66fd4ef3e36983969fb8cdd1956f551a074b] 64 bit Svt[info]: LIB Build date: Nov 3 2023 00:00:00 Svt[info]: ------------------------------------------- Svt[info]: Number of logical cores available: 8 Svt[info]: Number of PPCS 59 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]: ------------------------------------------- Output #0, webm, to 'hd01_mov_svt-av1_pr10.webm': Metadata: encoder : Lavf60.3.100 Stream #0:0(eng): Video: av1, yuv420p10le(tv, bt709, top coded first (swapped)), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 25 fps, 1k tbn (default) Metadata: creation_time : 2016-02-23T23:49:21.000000Z handler_name : Apple Video Media Handler vendor_id : appl encoder : Lavc60.3.100 libsvtav1 Stream #0:1(eng): Audio: vorbis, 48000 Hz, hexadecagonal, fltp (default) Metadata: creation_time : 2016-02-23T23:49:21.000000Z handler_name : Apple Sound Media Handler vendor_id : [0][0][0][0] encoder : Lavc60.3.100 libvorbis frame= 1781 fps= 51 q=35.0 Lsize= 19732kB time=00:01:11.26 bitrate=2268.3kbits/s speed=2.03x video:18635kB audio:1059kB subtitle:0kB other streams:0kB global headers:3kB muxing overhead: 0.193378%
-- Cin mailing list [email protected] https://lists.cinelerra-gg.org/mailman/listinfo/cin