找到10223个回复
此贴不保
用了好久了😁
又在旧手机 Redmi Note 7 上尝试了,上方的 cq 模式同样报错,vbr 模式的命令行去掉
-pix_fmt yuv420p
后可正常执行,速度在 0.38x 左右。低码率时一些帧会出现绿色马赛克。
@无名啊,@老虎会游泳,在红米 K60 Pro 上测试了 hevc_mediacodec 压缩拍摄的 4K60FPS 视频,结果:
CQ 模式应该非常适合视频压缩,但在我设备上,无论转码什么视频,都报错:
$ ffmpeg -hide_banner -hwaccel mediacodec -an -i /storage/emulated/0/DCIM/Camera/VID_20230725_194612.mp4 -c:v hevc_mediacodec -bitrate_mode cq -pix_fmt yuv420p -g 300 /storage/emulated/0/DCIM/Camera/VID_20230725_194612_cq.mp4 ...... [amediacodec_ndk @ 0xb40000726c4a0a80] Encoder configure failed, -10000 [hevc_mediacodec @ 0xb40000726c4afc00] MediaCodec configure failed, Generic error in an external library [vost#0:0/hevc_mediacodec @ 0xb40000726c497300] Error initializing output stream: Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height Conversion failed!
VBR 模式成功:
$ ffmpeg -hide_banner -hwaccel mediacodec -an -i /storage/emulated/0/DCIM/Camera/VID_20230725_194612.mp4 -c:v hevc_mediacodec -bitrate_mode vbr -b:v 8000k -pix_fmt yuv420p -g 300 /storage/emulated/0/DCIM/Camera/VID_20230725_194612_vbr_8000k.mp4 ...... Stream #0:0(eng): Video: hevc (hev1 / 0x31766568), yuv420p(tv, bt709/bt709/smpte170m, progressive), 3840x2160, q=2-31, 8000 kb/s, 60 fps, 15360 tbn (default) Metadata: creation_time : 2023-07-25T11:46:29.000000Z handler_name : VideoHandle vendor_id : [0][0][0][0] encoder : Lavc60.3.100 hevc_mediacodec frame= 1001 fps=102 q=-0.0 Lsize= 20381kB time=00:00:16.66 bitrate=10017.7kbits/s speed=1.69x video:20376kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.024889%尝试了多种比特率,速度都在 1.7x 左右。
转码效果:
总结,性能快,但是 cq 模式不可用,没有类似 crf 和 preset 的选项。
@无名啊,用vbr啊,cbr是那种“就算画面很简单也要保证比特率不下降”的模式,通常用于直播,因为直播比特率上下起伏会卡。
层主 @咯叽 于 2024-02-25 02:28 删除了该楼层。
@老虎会游泳,噢,
cbr
生效了。我之前测试-bitrate_mode cq -q 30
或-xxx cq -qp 30
,以及-xxx vbr -b:v 256k
,都不行。。咋说呢。。给了 1mbps 码率,好像还是不咋地。。设置了 GOP 为 300 帧,至少 30 帧才为一组