找回密码
 立即注册
搜索

[硬件] ffmpeg用av1编码器压片,交流下压片设置

[复制链接]
     
发表于 2024-7-11 19:05 | 显示全部楼层
takami 发表于 2024-7-11 18:11
话说av1压制出的片子对老设备兼容性如何?解码开销如何?

我压了很多264的结果放到一些老古董的mp4(指硬 ...

其实有一个取巧的办法,如果想要省心地为老MP4/MP5/PSP压视频的话,你甚至可以尝试一下老版本的格式工厂就一几年那会的版本

—— 来自 S1Fun
回复

使用道具 举报

发表于 2024-7-11 19:13 | 显示全部楼层
zhguyu 发表于 2024-7-11 19:01
这是某个网站测试的软编码/解码性能,只看软解的话HEVC和AV1开销差别不大,但实际上HEVC的硬解从十年前 ...

谢谢,psp不支持x264的我记得,只能用mpeg4,我是按480p压的,当时是看一个说明说这样压既能支持psp又能支持ps3

回复

使用道具 举报

发表于 2024-7-11 19:31 | 显示全部楼层
zhguyu 发表于 2024-7-11 19:05
其实有一个取巧的办法,如果想要省心地为老MP4/MP5/PSP压视频的话,你甚至可以尝试一下老版本的格式工厂 ...

我知道,也用过,但嫌弃他的声音和画面都只能选固定压缩率,我更喜欢vbr之类的

回复

使用道具 举报

     
发表于 2024-7-11 20:44 来自手机 | 显示全部楼层
takami 发表于 2024-7-11 19:13
谢谢,psp不支持x264的我记得,只能用mpeg4,我是按480p压的,当时是看一个说明说这样压既能支持psp又能 ...

PSP-2000以后是支持H.264的,但是有很多限制:
只能使用Main Profile
不能超过Level 3.0
最大分辨率720x480(但是超过PSP屏幕分辨率除了增大解码压力没有任何好处)
最大帧率29.97(我查了一下,实际上好像没有限制,但超过29.97应该只会抽帧)
不能使用b-pyramid
ref不超过2(也有说3)、bframes不超过3
总之按这些参数来的话应该就行了,不过如果一定要用MPEG4的话也只支持Simple Profile,这可能也是一个原因
回复

使用道具 举报

     
 楼主| 发表于 2024-7-12 00:38 | 显示全部楼层
zhguyu 发表于 2024-7-11 18:52
你看的有点老了,MSU比赛每年都会办的,建议直接上官网看
http://compression.ru/video/codec_comparison ...

2022~2023的比赛也是腾讯遥遥领先,然而是闭源的……

Mxplayer有明显的卡顿现象,即使指定第三方解码器 libffmpeg.mx.so.neon64.1.49.0
也无法流畅播放AV1视频,网上查了下MX-ffmpeg,源文件代码的dav1d解码器是三年前的,作者好几年没维护更新了

下载了能支持AV1播放的oplayer 5.0.0.36版本,卡顿更严重了,甚至无法正常播放

从谷歌商店下载了VLC for Android,刚开始能流畅1~5秒,后面播放就卡顿延迟了

无论禁不禁用硬件解码,这两个不太能很好提供解码能力

只有mpv-android在Y700平板能无延迟流畅播放,但唯一缺点是无法查看略缩图,只能看文件名点进去播放,也不能像MXplayer能以图墙形式展览

你似乎比我更熟悉AV1编码,能推荐一下支持略缩图显示,解码能力能性能和mpv-android媲美的播放器?
回复

使用道具 举报

     
发表于 2024-7-12 06:37 | 显示全部楼层
普通论坛用户 发表于 2024-7-12 00:38
2022~2023的比赛也是腾讯遥遥领先,然而是闭源的……

Mxplayer有明显的卡顿现象,即使指定第三方解码器  ...

我没有安卓设备,你得去问别人了
回复

使用道具 举报

     
发表于 2024-7-12 07:01 | 显示全部楼层
本帖最后由 zhguyu 于 2024-7-12 07:07 编辑
takami 发表于 2024-7-11 19:13
谢谢,psp不支持x264的我记得,只能用mpeg4,我是按480p压的,当时是看一个说明说这样压既能支持psp又能 ...

再提供一点背景信息
首先PSP支持H.264这点是毫无疑问的,因为这是官网上写的https://manuals.playstation.net/ ... ideo/filetypes.html
所以我想了想,最有可能会导致“有的能放有的不能”的原因最有可能还是分辨率+帧数的组合
首先对于MPEG4,PSP最高支持的Level是哪个我没查到,但是根据Wiki
a.png
可以看到只有Level 5以上才支持720x480@30fps。由于MPEG4 Simple Profile本身的特性,它也没办法支持更高的分辨率/帧率组合;
而对于H.264也是一样的,我明确查到PSP支持的最高Level是Level 3,根据Wiki
b.png
可以看出此时最高支持的分辨率/帧率组合同样是720x480@30fps

既然你是压的480p,也就是顶着分辨率上限,那你就要确保帧率不能超过30,否则编码器就会自动触发更高的Level,从而不能播放。
反正总结一下的话就是,如果要用MPEG4的话最好手动确保使用的是Simple Profile,因为编码器很可能默认会使用Advanced Simple Profile,而使用H.264的话也是一样,默认肯定是High Profile,所以要手动改成Main Profile
我现在手头边没有PSP只有一台PSV,不知道用PSV的Adrenalin模拟器能不能复现出PSP视频播放时的行为。
回复

使用道具 举报

发表于 2024-7-12 10:47 | 显示全部楼层
zhguyu 发表于 2024-7-12 07:01
再提供一点背景信息
首先PSP支持H.264这点是毫无疑问的,因为这是官网上写的https://manuals.playstation. ...

谢谢您,我也只是好奇,压那个还是当年带psp出去唱卡拉ok时代的事了

主要是我是用bat文件批量压的,命令参数都一样但就是某些视频可以放,某些不行,感觉有点奇怪
回复

使用道具 举报

     
发表于 2024-7-15 17:14 | 显示全部楼层
有没有i卡用户讲讲用qsv的各种压片参数和期望效果
回复

使用道具 举报

     
发表于 2024-7-15 19:03 来自手机 | 显示全部楼层
普通论坛用户 发表于 2024-7-12 00:38
2022~2023的比赛也是腾讯遥遥领先,然而是闭源的……

Mxplayer有明显的卡顿现象,即使指定第三方解码器  ...

我觉得是你的安卓设备本身玄学问题

我8gen1+的小米平板6Pro、田鸡9000的k50p都可以流畅软解播放和拖放局域网smb的10g一部的生理卫生片

远古小米平板3也可以流畅软解720p里番和电影,1080p能正常播但拖动会卡顿一下

用的都是mxplayer

哦对,苹果xsmax用vlc也没问题正常可以播

—— 来自 鹅球 v3.0.86-alpha
回复

使用道具 举报

     
 楼主| 发表于 2024-7-15 19:47 | 显示全部楼层
绯樱月姬 发表于 2024-7-15 19:03
我觉得是你的安卓设备本身玄学问题

我8gen1+的小米平板6Pro、田鸡9000的k50p都可以流畅软解播放和拖放局 ...

也许是我给平板刷机成PixelExperience_Plus_treble_arm64_bvn_13.0-20230914-UNOFFICIAL系统,pixel系统不如原生系统更好发挥硬件性能

刷机链接:https://comicplan.top/post/digtal-5

但又不怎么想刷回原系统,原系统是真不咋地……

MPV是不错的开源播放器,渲染能力较强,渲染相关的解码功能能随时更新,虽然互动操作不如mxplayer

评分

参与人数 1战斗力 +2 收起 理由
风夏 + 2 感谢推荐ab-av1, 忘记加分了

查看全部评分

回复

使用道具 举报

     
 楼主| 发表于 2024-7-17 17:25 | 显示全部楼层
绯樱月姬 发表于 2024-7-15 17:14
有没有i卡用户讲讲用qsv的各种压片参数和期望效果

几天没人回,我来回你挽尊

建议查下帮助文本,针对几个视频对象(2D视频、3D视频、真人视频)写几个不同的参数压一次看看效果,压完了扔FFMetrics查VMAF、SSIM分数,如需要编码耗时等数据,需自己写python脚本,不懂代码可以让AI帮你写

在同等的VMAF、SSIM分数情况下,选压缩率最高、编码时间能接受的参数命令,对于测试视频的压缩效果,压缩后的视频名最好命名为ffmpeg_av1_qsv_preset_5xxxx.mp4,方便事后查询


不知道你问的哪个qsv


  1. <div>C:\Users\Administrator>ffmpeg -codecs | grep qsv
  2. ffmpeg version 7.0.1-full_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers
  3.   built with gcc 13.2.0 (Rev5, Built by MSYS2 project)
  4.   configuration: --enable-gpl --enable-version3 --enable-shared --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
  5.   libavutil      59.  8.100 / 59.  8.100
  6.   libavcodec     61.  3.100 / 61.  3.100
  7.   libavformat    61.  1.100 / 61.  1.100
  8.   libavdevice    61.  1.100 / 61.  1.100
  9.   libavfilter    10.  1.100 / 10.  1.100
  10.   libswscale      8.  1.100 /  8.  1.100
  11.   libswresample   5.  1.100 /  5.  1.100
  12.   libpostproc    58.  1.100 / 58.  1.100
  13. DEV.L. av1                  Alliance for Open Media AV1 (decoders: libdav1d libaom-av1 av1 av1_cuvid av1_qsv) (encoders: libaom-av1 librav1e libsvtav1 av1_nvenc av1_qsv av1_amf av1_vaapi)
  14. DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_qsv h264_cuvid) (encoders: libx264 libx264rgb h264_amf h264_mf h264_nvenc h264_qsv h264_vaapi)
  15. DEV.L. hevc                 H.265 / HEVC (High Efficiency Video Coding) (decoders: hevc hevc_qsv hevc_cuvid) (encoders: libx265 hevc_amf hevc_mf hevc_nvenc hevc_qsv hevc_vaapi)
  16. DEVIL. mjpeg                Motion JPEG (decoders: mjpeg mjpeg_cuvid mjpeg_qsv) (encoders: mjpeg mjpeg_qsv mjpeg_vaapi)
  17. DEV.L. mpeg2video           MPEG-2 video (decoders: mpeg2video mpegvideo mpeg2_qsv mpeg2_cuvid) (encoders: mpeg2video mpeg2_qsv mpeg2_vaapi)
  18. D.V.L. vc1                  SMPTE VC-1 (decoders: vc1 vc1_qsv vc1_cuvid)
  19. DEV.L. vp8                  On2 VP8 (decoders: vp8 libvpx vp8_cuvid vp8_qsv) (encoders: libvpx vp8_vaapi)
  20. DEV.L. vp9                  Google VP9 (decoders: vp9 libvpx-vp9 vp9_cuvid vp9_qsv) (encoders: libvpx-vp9 vp9_vaapi vp9_qsv)</div>
复制代码


假定你问的av1_qsv,英文帮助文本扔阿里云的通义、智谱模型翻译一下就行


  1. <div>C:\Users\Administrator>ffmpeg -h encoder=av1_qsv
  2. ffmpeg version 7.0.1-full_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers
  3.   built with gcc 13.2.0 (Rev5, Built by MSYS2 project)
  4.   configuration: --enable-gpl --enable-version3 --enable-shared --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
  5.   libavutil      59.  8.100 / 59.  8.100
  6.   libavcodec     61.  3.100 / 61.  3.100
  7.   libavformat    61.  1.100 / 61.  1.100
  8.   libavdevice    61.  1.100 / 61.  1.100
  9.   libavfilter    10.  1.100 / 10.  1.100
  10.   libswscale      8.  1.100 /  8.  1.100
  11.   libswresample   5.  1.100 /  5.  1.100
  12.   libpostproc    58.  1.100 / 58.  1.100
  13. Encoder av1_qsv [AV1 (Intel Quick Sync Video acceleration)]:
  14.     General capabilities: delay hybrid
  15.     Threading capabilities: none
  16.     Supported hardware devices: qsv qsv qsv
  17.     Supported pixel formats: nv12 p010le qsv
  18. av1_qsv encoder AVOptions:
  19.   -async_depth       <int>        E..V....... Maximum processing parallelism (from 1 to INT_MAX) (default 4)
  20.   -preset            <int>        E..V....... (from 0 to 7) (default 0)
  21.      veryfast        7            E..V.......
  22.      faster          6            E..V.......
  23.      fast            5            E..V.......
  24.      medium          4            E..V.......
  25.      slow            3            E..V.......
  26.      slower          2            E..V.......
  27.      veryslow        1            E..V.......
  28.   -forced_idr        <boolean>    E..V....... Forcing I frames as IDR frames (default false)
  29.   -low_power         <boolean>    E..V....... enable low power mode(experimental: many limitations by mfx version, BRC modes, etc.) (default auto)
  30.   -b_strategy        <int>        E..V....... Strategy to choose between I/P/B-frames (from -1 to 1) (default -1)
  31.   -adaptive_i        <int>        E..V....... Adaptive I-frame placement (from -1 to 1) (default -1)
  32.   -adaptive_b        <int>        E..V....... Adaptive B-frame placement (from -1 to 1) (default -1)
  33.   -extbrc            <int>        E..V....... Extended bitrate control (from -1 to 1) (default -1)
  34.   -low_delay_brc     <boolean>    E..V....... Allow to strictly obey avg frame size (default auto)
  35.   -max_frame_size    <int>        E..V....... Maximum encoded frame size in bytes (from -1 to INT_MAX) (default -1)
  36.   -max_frame_size_i  <int>        E..V....... Maximum encoded I frame size in bytes (from -1 to INT_MAX) (default -1)
  37.   -max_frame_size_p  <int>        E..V....... Maximum encoded P frame size in bytes (from -1 to INT_MAX) (default -1)
  38.   -profile           <int>        E..V....... (from 0 to INT_MAX) (default unknown)
  39.      unknown         0            E..V.......
  40.      main            1            E..V.......
  41.   -tile_cols         <int>        E..V....... Number of columns for tiled encoding (from 0 to 65535) (default 0)
  42.   -tile_rows         <int>        E..V....... Number of rows for tiled encoding (from 0 to 65535) (default 0)
  43.   -look_ahead_depth  <int>        E..V....... Depth of look ahead in number frames, available when extbrc option is enabled (from 0 to 100) (default 0)</div>
复制代码




回复

使用道具 举报

     
发表于 2024-7-22 16:15 | 显示全部楼层
如果是A卡,用楼主的命令,能否实现显卡硬压
回复

使用道具 举报

     
 楼主| 发表于 2024-7-22 19:32 | 显示全部楼层
mickoo 发表于 2024-7-22 16:15
如果是A卡,用楼主的命令,能否实现显卡硬压

你说的是av1_amf编码器?

用A卡的话,看看这个编码器提供了哪些可支持的参数调用
  1. ffmpeg -h encoder=av1_qsv
复制代码


我没有A卡,不知道压片怎么样
回复

使用道具 举报

     
发表于 2024-7-22 20:07 | 显示全部楼层
找到一篇2023年的硬编码测试
https://www.tomshardware.com/news/amd-intel-nvidia-video-encoding-performance-quality-tested
结论是RTX40 > Intel Xe > RDNA3
不过听说这几年NV每一代架构的硬编码性能都有提升,所以不知道RTX30系甚至20系会落后多少。以及下一代Intel会有VVC编码,这个应该是独占。

—— 来自 S1Fun
回复

使用道具 举报

     
发表于 2024-9-14 05:48 | 显示全部楼层
关于PSP视频压制,因为最近自己刚好用到了,想起来这个帖子里有人问过,就说一下吧。默认原视频是16:9。
首先PSP支持H.264 Main Profile,最高Level 3.0,不支持b-paramid、weight-p,ref最大为3,对应成x264的参数就是
--profile main --b-pyramid none --ref 3 --weightp 0

最简单的方法就是直接把视频下采样到480x272或者270(取决于你是否有强迫症),这种情况下不需要额外的流程,直接压就行。

但是PSP所使用的UMD光盘中存储的电影的分辨率是720x480,而Sony在3.30固件以后也开放了在记忆卡中播放这个特定分辨率视频的功能。虽然这个分辨率已经超过PSP的屏幕分辨率了,但是更高的视频分辨率能带来两个好处:一是当PSP把画面输出到电视时能更清晰(虽然在现在已经没人会这么干了);二是【据说】PSP的硬件在从YUV420P8转换到RGB时的精度有问题,用更高分辨率的视频转换能够弥补这个问题从而提高画质。

但是想要压制符合PSP规范的480p视频需要额外一个步骤:因为UMD本质上是缩小版的DVD,PSP在播放480p的视频时也会遵守一些DVD的标准,所以在压制时也得符合这些标准。
首先DVD在播放时会切除掉画面左右两边各8个像素,最终分辨率是704x480。所以为了在PSP播放时画面内容不会被切掉,我们先要把原视频下采样到704x480,然后在左右两边各加上8像素宽的黑边。
在VapourSynth里就是

clip = clip.fmtc.resample(w = 704, h = 480)
clip = core.std.AddBorders(clip, left = 8, right = 8)


最后,为了使704x480分辨率的视频在播放时能正确地被拉伸到16:9的长宽比,需要在x264里加上
--sar 40:33
以上这些流程对于压制DVD的人应该已经很习惯了。如果不加--sar这个参数的话在PSP里每次播放都需要手动切换到宽屏模式。
需要注意的是,因为PSP最高只支持Level 3.0,所以对于480p的视频帧率不能超过30。如果是272p的视频帧率则最高可以达到60,但我不确定PSP会不会抽帧。
回复

使用道具 举报

发表于 2024-9-14 08:06 来自手机 | 显示全部楼层
最近遇到个坑,N5105的JasperLake架构核显不支持HEVC编码时用ICQ控制码率,只能用CQP之类。
感觉影响不大,凑合用算了……
回复

使用道具 举报

     
发表于 2024-9-14 10:51 | 显示全部楼层
h266 vvc提升大吗
我用ffmpeg压了几个
我是外行,也看不出个好坏,主要就是想省点空间
回复

使用道具 举报

     
发表于 2024-9-14 23:09 | 显示全部楼层
看了帖子试了下NV的硬编码AV1还行,预设拉满P7也有接近400fps。回头把那堆臃肿的asmr压缩一下。
回复

使用道具 举报

     
发表于 2024-9-14 23:11 来自手机 | 显示全部楼层
马克一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-9-28 06:55 , Processed in 0.095035 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表