已关闭
通过h264_ascend指定视频编码器的速率控制模式不生效 #330
kevin0615创建于  2025年12月23日关闭于  1月26日
kevin0615
2025年12月23日 创建

该问题是怎么引起的?

• -rc_mode - 指定视频编码器的速率控制模式(0: CBR, 1: VBR, 默认为 0)。
不设置,设置为0,设置为1,通过mediainfo查看都为VBR,而非CBR。

重现步骤

  1. 下载ffmpeg版本:
    https://codeload.github.com/FFmpeg/FFmpeg/tar.gz/refs/tags/n4.4.4
  2. 克隆代码仓库:
    https://gitcode.com/ascend/mindsdk-referenceapps.git
  3. 应用补丁:patch -p1 -f < /usr/kevin/mindsdk-referenceapps/VisionSDK/AscendFFmpegPlugin/ascend_ffmpeg.patch
  4. 编译ffmpeg:
    ./configure
    --prefix=./ascend
    --enable-shared
    --extra-cflags="-I${ASCEND_HOME}/ascend-toolkit/latest/acllib/include"
    --extra-ldflags="-L${ASCEND_HOME}/ascend-toolkit/latest/acllib/lib64"
    --extra-libs="-lacl_dvpp_mpi -lascendcl"
    --enable-ascend
    && make -j && make install
  5. 执行命令
    ./ffmpeg -hwaccel ascend -c:v h264_ascend -device_id 0 -channel_id 0 -resize 1920x1080 -i ./HBTV_新闻联播_1980_1080.mp4 -c:v h264_ascend -device_id 0 -channel_id 0 -profile 1 -rc_mode 0 -g 25 -max_bit_rate 8192 ./output.ts

报错信息

image.png

likedislike
hang成员
2025年12月23日 评论:

尊敬的开发者您好

目前我们支持的ffmpeg版本是n4.4.1。
同时您可以尝试下readme中的指令,转换成ts格式可能会被mediainfo误判。
将输入文件 test.264 根据指定参数重新编码为H.264格式,输出文件为 out.264
./ffmpeg -hwaccel ascend -c:v h264_ascend -device_id 0 -channel_id 0 -resize 1024x1000 -i test.264 -c:v h264_ascend -device_id 0 -channel_id 0 -profile 2 -rc_mode 0 -gop 30 -frame_rate 25 -max_bit_rate 20000 out.264

likedislike
Hhang成员
2025年12月23日 issue状态由 TODO 改变为 Feedback
kevin0615
2025年12月23日 评论:

变更为4.4.1

image.png

查看结果:

image.png

最终结果都是VBR(动态码率),CBR(固定码率)不生效。

likedislike
Hhang成员
2025年12月23日 issue状态由 Feedback 改变为 Analysing
hang成员
2025年12月23日 评论:

尊敬的开发者您好:

您反馈的相关信息我们需要进行分析,得出结论后会在本issue下回复,请您耐心等待。

谢谢

likedislike
hang成员
2025年12月24日 评论:

尊敬的开发者您好

我们提供的指令是h264之间的rc_mode的转换,根据您的截图,您最终将其转换为mp4,意味着多了一层封装,可能会影响码率的计算。

同时针对码率模式的查看,我们建议您直接使用码率监控监控整个视频的码率是否存在较大波动,如果没有波动则意味着已经为cbr模式。

谢谢

likedislike
Hhang成员
2025年12月24日 issue状态由 Analysing 改变为 Feedback
Hhang成员
2025年12月26日 添加了label:question
Hhang成员
1月8日 添加了label:pending
Hhang成员
1月15日 添加了label:resolved;删除了label:pending
ascend-robot
ascend-robot成员
1月22日 评论:

这个Issue标记为resolved且有一段时间未进一步更新,因此我们将其标记为'stale'(闲置)状态。若你认为这是误操作,可随时评论'/label remove stale'移除'stale'标签。标记为stale的Issue在4天内无更新活动将自动关闭

likedislike
ascend-robotascend-robot成员
1月22日 添加了label:stale
ascend-robotascend-robot成员
1月22日 关闭了 issue
ascend-robotascend-robot成员
1月23日 重新打开了 issue
ascend-robotascend-robot成员
1月26日 关闭了 issue
Xxiangjie10成员
9月9日 issue状态由 Feedback 改变为 DONE