找回密码
 立即注册
查看: 1884|回复: 4

记录FFmpeg 旧版本yuv444p10le花屏解决

  • TA的每日心情
    无聊
    2022-10-24 15:56
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    1

    主题

    1

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    3043
    AFSSDF 发表于 2022-4-21 12:05:30 | 显示全部楼层 |阅读模式
    测试视频: 花右京メイド隊 01 映像特典 01 「第1話予告(15秒)」 (BD 1440x1080 x264@Hi444p ALAC 2ch AC3 5.1ch).mp4在 mpv-android 播放器中花屏

    后使用 MX Player1.42.12、Nova Video Player6.0.53、VLC3.3.4、KMPlayer Pro2.3.9、XPlayer2.1.9.4、UPlayer2.0.3、三星视频播放器7.3.16.2,播放测试均花屏或显示不支持编码格式
    之后在PC中播放 Potplayer、mpv(均为最新版)显示花屏, MPC-HC 播放正常

    使用 最新版 ffmpeg -i 测试 报错
    1. C:\Users\Li\Pictures\三星多屏联动>ffmpeg -i "花右京メイド隊 01 映像特典 01 「第1話予告(15秒)」 (BD 1440x1080 x264@Hi444p ALAC 2ch AC3 5.1ch).mp4"
    2. ffmpeg version 2022-04-18-git-d5687236ab-full_build-www.gyan.dev Copyright (c) 2000-2022 the FFmpeg developers
    3.   built with gcc 11.2.0 (Rev10, Built by MSYS2 project)
    4.   configuration: --enable-gpl --enable-version3 --enable-static --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-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --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-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      57. 24.101 / 57. 24.101
    6.   libavcodec     59. 26.100 / 59. 26.100
    7.   libavformat    59. 22.100 / 59. 22.100
    8.   libavdevice    59.  6.100 / 59.  6.100
    9.   libavfilter     8. 33.100 /  8. 33.100
    10.   libswscale      6.  6.100 /  6.  6.100
    11.   libswresample   4.  6.100 /  4.  6.100
    12.   libpostproc    56.  5.100 / 56.  5.100
    13. [h264 @ 000002bc9a7b5980] <font color="#ff0000">top block unavailable for requested intra mode -1</font>
    14. [h264 @ 000002bc9a7b5980] <font color="#ff0000">error while decoding MB 6 0, bytestream 49221</font>
    15. [h264 @ 000002bc9a7b5980] concealing 6120 DC, 6120 AC, 6120 MV errors in I frame
    16. Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '花右京メイド隊 01 映像特典 01 「第1話予告(15秒)」 (BD 1440x1080 x264@Hi444p ALAC 2ch AC3 5.1ch).mp4':
    17.   Metadata:
    18.     major_brand     : mp42
    19.     minor_version   : 0
    20.     compatible_brands: mp42mp41isomM4A
    21.     creation_time   : 2013-08-28T17:03:25.000000Z
    22.   Duration: 00:00:16.03, start: 0.000000, bitrate: 6703 kb/s
    23.   Stream #0:0[0x1](und): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuv444p10le(tv, bt709, progressive), 1440x1080, 5276 kb/s, 23.98 fps, 23.98 tbr, 24k tbn (default)
    24.     Metadata:
    25.       creation_time   : 2013-08-28T17:03:25.000000Z
    26.       handler_name    : L-SMASH Video Media Handler
    27.       vendor_id       : [0][0][0][0]
    28.       encoder         : AVC Coding
    29.   Stream #0:1[0x2](und): Audio: alac (alac / 0x63616C61), 48000 Hz, stereo, s16p, 788 kb/s (default)
    30.     Metadata:
    31.       creation_time   : 2013-08-28T17:03:25.000000Z
    32.       handler_name    : 2ch
    33.       vendor_id       : [0][0][0][0]
    34.   Stream #0:2[0x3](und): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side), fltp, 640 kb/s (default)
    35.     Metadata:
    36.       creation_time   : 2013-08-28T17:03:25.000000Z
    37.       handler_name    : 5.1ch
    38.       vendor_id       : [0][0][0][0]
    39.     Side data:
    40.       audio service type: main
    41. <font color="#ff0000">At least one output file must be specified</font>
    复制代码
    使用旧版本 ffmpeg-3.2.6 测试无报错
    1. li@DESKTOP:~/project/ffmpeg-3.2.6/src$ ./bin/ffmpeg -i ~/花右京メイド隊\ 01\ 映像特典\ 01\ 「第1話予告(15秒)」\ \(BD\ 1440x1080\ x264@Hi444p\ ALAC\ 2ch\ AC3\ 5.1ch\).mp4
    2. ffmpeg version 3.2.6 Copyright (c) 2000-2017 the FFmpeg developers
    3.   built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
    4.   configuration: --prefix=/home/li/project/ffmpeg-3.2.6/src
    5.   libavutil      55. 34.101 / 55. 34.101
    6.   libavcodec     57. 64.101 / 57. 64.101
    7.   libavformat    57. 56.101 / 57. 56.101
    8.   libavdevice    57.  1.100 / 57.  1.100
    9.   libavfilter     6. 65.100 /  6. 65.100
    10.   libswscale      4.  2.100 /  4.  2.100
    11.   libswresample   2.  3.100 /  2.  3.100
    12. Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/li/花右京メイド隊 01 映像特典 01 「第1話予告(15秒)」 (BD 1440x1080 x264@Hi444p ALAC 2ch AC3 5.1ch).mp4':
    13.   Metadata:
    14.     major_brand     : mp42
    15.     minor_version   : 0
    16.     compatible_brands: mp42mp41isomM4A
    17.     creation_time   : 2013-08-28T17:03:25.000000Z
    18.   Duration: 00:00:16.03, start: 0.000000, bitrate: 6703 kb/s
    19.     Stream #0:0(und): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuv444p10le(tv, bt709), 1440x1080, 5276 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)
    20.     Metadata:
    21.       creation_time   : 2013-08-28T17:03:25.000000Z
    22.       handler_name    : L-SMASH Video Media Handler
    23.       encoder         : AVC Coding
    24.     Stream #0:1(und): Audio: alac (alac / 0x63616C61), 48000 Hz, stereo, s16p, 788 kb/s (default)
    25.     Metadata:
    26.       creation_time   : 2013-08-28T17:03:25.000000Z
    27.       handler_name    : 2ch
    28.     Stream #0:2(und): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side), fltp, 640 kb/s (default)
    29.     Metadata:
    30.       creation_time   : 2013-08-28T17:03:25.000000Z
    31.       handler_name    : 5.1ch
    32.     Side data:
    33.       audio service type: main
    34. <font color="#ffa500">At least one output file must be specified</font>
    复制代码
    使用旧版本 ffmpeg-3.2.8 测试与最新版本测试报错一致
    1. li@DESKTOP:~/project/ffmpeg-3.2.8/src$ ./bin/ffmpeg -i ~/花右京メイド隊\ 01\ 映像特典\ 01\ 「第1話予告(15秒)」\ \(BD\ 1440x1080\ x264@Hi444p\ ALAC\ 2ch\ AC3\ 5.1ch\).mp4
    2. ffmpeg version 3.2.8 Copyright (c) 2000-2017 the FFmpeg developers
    3.   built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
    4.   configuration: --prefix=/home/li/project/ffmpeg-3.2.8/src
    5.   libavutil      55. 34.101 / 55. 34.101
    6.   libavcodec     57. 64.101 / 57. 64.101
    7.   libavformat    57. 56.101 / 57. 56.101
    8.   libavdevice    57.  1.100 / 57.  1.100
    9.   libavfilter     6. 65.100 /  6. 65.100
    10.   libswscale      4.  2.100 /  4.  2.100
    11.   libswresample   2.  3.100 /  2.  3.100
    12. [h264 @ 0x561591bb5ce0]<font color="#ff0000"> top block unavailable for requested intra mode -1</font>
    13. [h264 @ 0x561591bb5ce0] <font color="#ff0000">error while decoding MB 6 0, bytestream 49221</font>
    14. [h264 @ 0x561591bb5ce0] concealing 6120 DC, 6120 AC, 6120 MV errors in I frame
    15. Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/li/花右京メイド隊 01 映像特典 01 「第1話予告(15秒)」 (BD 1440x1080 x264@Hi444p ALAC 2ch AC3 5.1ch).mp4':
    16.   Metadata:
    17.     major_brand     : mp42
    18.     minor_version   : 0
    19.     compatible_brands: mp42mp41isomM4A
    20.     creation_time   : 2013-08-28T17:03:25.000000Z
    21.   Duration: 00:00:16.03, start: 0.000000, bitrate: 6703 kb/s
    22.     Stream #0:0(und): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuv444p10le(tv, bt709), 1440x1080, 5276 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)
    23.     Metadata:
    24.       creation_time   : 2013-08-28T17:03:25.000000Z
    25.       handler_name    : L-SMASH Video Media Handler
    26.       encoder         : AVC Coding
    27.     Stream #0:1(und): Audio: alac (alac / 0x63616C61), 48000 Hz, stereo, s16p, 788 kb/s (default)
    28.     Metadata:
    29.       creation_time   : 2013-08-28T17:03:25.000000Z
    30.       handler_name    : 2ch
    31.     Stream #0:2(und): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side), fltp, 640 kb/s (default)
    32.     Metadata:
    33.       creation_time   : 2013-08-28T17:03:25.000000Z
    34.       handler_name    : 5.1ch
    35.     Side data:
    36.       audio service type: main
    37. <font color="#ffa500">At least one output file must be specified</font>
    复制代码
    对比 ffmpeg-3.2.6 ffmpeg-3.2.8 版本差异,最后试出为 [color=var(--color-accent-fg)]libavcodec/[color=var(--color-fg-default)]h264_cabac.c [color=var(--color-fg-default)]原因
    [color=var(--color-fg-default)](此处由于ffmpeg-3.2.7与最新版的报错不一致并未加入对比[color=var(--color-fg-default)]
    对比关键代码 ( github地址 )


    将3.2.6版本的 h264_cabac.c 替换到最新版中,重新编译安装,播放恢复正常


    —————————————————————————————————————————————————————————————————
    在PC中,只有 MPC-HC 可以正常播放, 可能是由于 MPC-HC 最后一次发布时间为 2017-07-16,
    根据 ffmpeg发行时间 ffmpeg的下一个报错版本 3.2.7 发布时间为 2017-07-30


    —————————————————————————————————————————————————————————————————
    对于此错误只针对该视频花屏修复(本人使用Android平板看,不习惯使用PC),并不是说现版本的ffmpeg有问题。
    本人也并非视频编解码专业,也看不懂 h264_cabac.c 中的代码逻辑,只是测试出改成3.2.6版本播放该视频不会花,可以正常观看


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-6 15:37
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    2

    主题

    322

    回帖

    32

    VC币

    荣誉会员

    Rank: 14Rank: 14Rank: 14Rank: 14

    积分
    128276

    活跃达人

    shadows 发表于 2022-4-21 15:14:07 | 显示全部楼层
    本帖最后由 shadows 于 2022-4-21 15:30 编辑

    说不定相关 https://trac.ffmpeg.org/ticket/8126 https://trac.ffmpeg.org/ticket/6717
    https://github.com/mpv-player/mpv/issues/4559 可尝试使用--vd-lavc-assume-old-x264 解决

    https://mpv.io/manual/master/#options-vd-lavc-assume-old-x264
    --vd-lavc-assume-old-x264=<yes|no>
    Assume the video was encoded by an old, buggy x264 version (default: no). Normally, this is autodetected by libavcodec. But if the bitstream contains no x264 version info (or it was somehow skipped), and the stream was in fact encoded by an old x264 version (build 150 or earlier), and if the stream uses 4:4:4 chroma, then libavcodec will by default show corrupted video. This option sets the libavcodec x264_build option to 150, which means that if the stream contains no version info, or was not encoded by x264 at all, it assumes it was encoded by the old version. Enabling this option is pretty safe if you want your broken files to work, but in theory this can break on streams not encoded by x264, or if a stream encoded by a newer x264 version contains no version info.


    回复 支持 2 反对 2

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-12-23 15:09
  • 签到天数: 42 天

    [LV.5]常住居民I

    5

    主题

    471

    回帖

    195

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    366148
    苏辰汐 发表于 2022-4-21 15:25:52 | 显示全部楼层
    顺便mpc-hc有一直在维护的社区版本:https://github.com/clsid2/mpc-hc
    回复 支持 1 反对 1

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 221 天

    [LV.7]常住居民III

    11

    主题

    152

    回帖

    963

    VC币

    至尊会员

    猫娘

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    205931
    zzy2000129 发表于 2022-4-21 15:49:32 | 显示全部楼层
    记得这个是AVC中间更新过一次规范导致的,解决方案是解码器换成ffdshow或者lavfilters 0.67(需要折腾一下共存),常见于日职一些阴间Hi444pp
    个人学业原因挤不出时间
    夏色奇迹这坑先压着
    红豆泥私密马赛
    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情
    无聊
    2022-10-24 15:56
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    1

    主题

    1

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    3043
    AFSSDF  楼主| 发表于 2022-4-21 16:45:09 | 显示全部楼层
    本帖最后由 AFSSDF 于 2022-4-21 16:47 编辑
    shadows 发表于 2022-4-21 15:14
    说不定相关 https://trac.ffmpeg.org/ticket/8126 https://trac.ffmpeg.org/ticket/6717
    https://github.co ...

    测试mpv-android加入这个参数后可以正常播放,感谢大佬分享
    1. --vd-lavc-assume-old-x264=yes
    复制代码

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    回复 支持 0 反对 1

    使用道具 举报

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

    本版积分规则

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