aa598779676 发表于 2017-6-1 13:47:51

ffmpeg hevc_qsv 只发送一次pps sps

本帖最后由 aa598779676 于 2017-6-1 13:50 编辑

用intel hevc_qsv编码的视频无法快进,貌似ffmpeg只添加了一次pps导致快进黑屏。添加命令 -idr_interval 1 提示:
Codec AVOption idr_interval (Distance (in I-frames) between IDR frames) specified for output file #0 (out.qsv.mp4) has not been used for any stream. The most likely reason is either wrong type (e.g. a
video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.而h264_qsv就是每次i帧都添加sps pps 所以 hevc_qsv无法快进,h264_qsv可以快进,有解决方案吗?


孙悟空 发表于 2017-6-1 14:53:27

可以使用-g尝试设置gop
static const AVCodecDefault qsv_enc_defaults[] = {
    { "b",         "1M"    },
    { "refs",      "0"   },
    // same as the x264 default
    { "g",         "248"   },
    { "bf",      "8"   },

    { "flags",   "+cgop" },
#if FF_API_PRIVATE_OPT
    { "b_strategy", "-1"   },
#endif
    { NULL },
};

aa598779676 发表于 2017-6-1 15:18:34

孙悟空 发表于 2017-6-1 14:53
可以使用-g尝试设置gop
static const AVCodecDefault qsv_enc_defaults[] = ...

设置了GOP20-250都设置过

aa598779676 发表于 2017-6-1 15:21:00

孙悟空 发表于 2017-6-1 14:53
可以使用-g尝试设置gop
static const AVCodecDefault qsv_enc_defaults[] = ...

命令行:
ffmpeg -i 1.wmv -pix_fmt nv12 -c:v hevc_qsv -preset:v 7 -profile:v 1 -load_plugin 2 -level:v 5.1 -b:v 500k -maxrate 700k-minrate 200k -bufsize 16M -g 250 -bf 8 -refs 0 -bitrate_limit 1 -async_depth 4-idr_interval 1 -vf scale=1024:-1 -c:a aac -ab 48k -ar 22050 out.qsv.mp4   

孙悟空 发表于 2017-6-1 15:34:26

mp4文件能否发出来一份?

孙悟空 发表于 2017-6-1 15:39:48

这个patch打进去然后编译一下试试看

aa598779676 发表于 2017-6-1 15:50:12

孙悟空 发表于 2017-6-1 15:34
mp4文件能否发出来一份?

https://pan.baidu.com/s/1dFKjkrB            转码后的mp4 无法快进同样的命令用h264_qsv就很完美。。。hevc_qsv就不能快进。。。

aa598779676 发表于 2017-6-1 15:54:22

猴哥 帮我看看这个视频是怎么回事啊,搞了我小半年了。。:'(
页: [1]
查看完整版本: ffmpeg hevc_qsv 只发送一次pps sps