找回密码
 立即注册
查看: 2620|回复: 21

源濾鏡 FFmpegSource2 vs DirectShowSource 一問

  • TA的每日心情

    2024-1-29 00:43
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    11

    主题

    89

    回帖

    3694

    VC币

    荣誉会员

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

    积分
    137521

    崭露头角

    okmijnuhb2C1 发表于 2023-3-18 09:49:29 | 显示全部楼层 |阅读模式
    本帖最后由 okmijnuhb2C1 于 2023-3-18 10:05 编辑

    小弟不時會hardsub 字幕至 BD, 用的是 VSFilter OR VSFilterMod

    一直以來都是用 avs + DirectShowSource  餵給 x264 tmod / x265, 如下

    LoadPlugin("C:\Users\Jason\Desktop\app\VSFilterMod\VSFilterMod-avs\x264\VSFilterMod.DLL")
    DirectShowSource("C:\Users\Jason\Desktop\app\VSFilterMod\VSFilterMod-avs\NCOP2-2.mkv")
    TextSubMod("C:\Users\Jason\Desktop\app\VSFilterMod\VSFilterMod-avs\NCOP2-2.ass")


    最近發現 x265 的一行info經常是 "i420p8", 不論是 YUV420 8bits OR YUV420 10bits 的源
    avs+ [INFO]: 1920x1080 fps 10000000/417083 i420p8 frames 0 - 35224 of 35225
    應該也即是說input depth 變了 YUV420 8bits

    但改用 FFmpegSource2 則在 indexing 後能正確分辨 YUV420 8bits 及 YUV420 10bits 的源

    LoadPlugin("C:\Users\Jason\Desktop\app\VSFilterMod\VSFilterMod-avs\x264\VSFilterMod.DLL")
    LoadPlugin("C:\Users\Jason\Desktop\app\VSFilterMod\VSFilterMod-avs\x264\ffms2.dll")
    FFVideoSource("C:\Users\Jason\Desktop\app\VSFilterMod\VSFilterMod-avs\NCOP2-2.mkv")
    TextSubMod("C:\Users\Jason\Desktop\app\VSFilterMod\VSFilterMod-avs\NCOP2-2.ass")

    avs+ [INFO]: 1920x1080 fps 24000/1001 i420p10 frames 0 - 35223 of 35224

    而且同樣參數下 x265 輸出經 FFmpegSource2 解碼的檔案體積更小, 請問是有什麼原因在背後呢?



    而 y4m 餵法又會否是更好選擇?

    本帖子中包含更多资源

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

    x
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-4-25 16:23
  • 签到天数: 1 天

    [LV.1]初来乍到

    16

    主题

    92

    回帖

    5626

    VC币

    版主

    Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

    积分
    283676

    崭露头角CD!BD!新人登场

    vxzms 发表于 2023-3-18 11:23:09 | 显示全部楼层
    本帖最后由 vxzms 于 2023-3-18 17:24 编辑

    - 重複
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-4-25 16:23
  • 签到天数: 1 天

    [LV.1]初来乍到

    16

    主题

    92

    回帖

    5626

    VC币

    版主

    Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

    积分
    283676

    崭露头角CD!BD!新人登场

    vxzms 发表于 2023-3-18 11:23:12 | 显示全部楼层
    1. DSS(DirectShowSource)比較古老,我不清楚它現在能否正確處理高於 8-bit 的影片,但由於它解碼出現錯誤的可能性較大,所以很久前就已不再推薦使用,可以使用 LWLibavVideoSource 或 FFMS2(FFmpegSource2)來作為源濾鏡
    2. 不清楚你 x265 輸出的是什麼 bitdepth,假如 AVS+ 輸出 10-bit,x265 輸出 8-bit,那麼 x265 會在其內部做一個色深的轉換,與 8-bit -> 8-bit 產生不同的體積也是有可能的
    3. 從 AVS (+)、VS 這類預處理的 Frameserver 推薦是用 y4m pipe 給影片編碼器進行壓縮的,如 x265 需要在參數指定 --y4m,我也不清楚你現在用的什麼方式
    4. VSFilter / VSFilterMod 在 YUV420 8-bit 下載入字幕可能也會在色彩轉換上出現問題
    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情
    开心
    2021-6-26 09:23
  • 签到天数: 49 天

    [LV.5]常住居民I

    3

    主题

    106

    回帖

    79

    VC币

    荣誉会员

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

    积分
    93034
    joker2000 发表于 2023-3-18 11:33:12 | 显示全部楼层
    对于 x265 同参数下,10bit 会比 8bit 有更高的压缩率,因为对 10bit 做了优化,x265-8bit 一般不推荐使用,不如 x264-8bit。
    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情

    2024-1-29 00:43
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    11

    主题

    89

    回帖

    3694

    VC币

    荣誉会员

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

    积分
    137521

    崭露头角

    okmijnuhb2C1  楼主| 发表于 2023-3-18 13:07:03 | 显示全部楼层
    本帖最后由 okmijnuhb2C1 于 2023-3-18 14:20 编辑
    vxzms 发表于 2023-3-18 11:23
    1. DSS(DirectShowSource)比較古老,我不清楚它現在能否正確處理高於 8-bit 的影片,但由於它解碼出現錯 ...

    感謝回覆, 我 x264/x265 全都是 輸出 10bit的, 那看來我應該全面轉用ffms2 好了, 看wiki 好像DSS沒有 P010 輸出 = ="

    另外還有事想請教


    1. 上圖中的 ffms 與 dss 輸出檔案大小有差異是因為

    "10bit 片源, DSS AVS+ 輸出 8-bit,x265 輸出 10-bit,x265 會在其內部做一個色深的轉換,與 FFMS2 AVS+ 10-bit -> 10-bit 產生不同的體積" 嗎?


    2. 我用過的參數如下, 我想 y4m 應該要 "--input-depth" 來指定色深,
    但不知道avs no pipe 是不是會以 avs+ 提供的資料作色深, 所以不知道紅色的是不是有必要,
    如果avs no pipe 沒必要的話, 8bit / 10bit 片源就可以用同一個參數的bat了?

    for %%i in (*.avs) do ffmpeg.exe -loglevel level+error -i "%%i" -strict -1 -pix_fmt yuv420p10le -f yuv4mpegpipe - | x265.exe --input-depth 10 --pool 16 --crf 18 --preset medium --bframes 6 --no-sao --no-strong-intra-smoothing --qg-size 8 --pbratio 1.2 --cbqpoffs -2 --crqpoffs -2 --me 3 --subme 5 --merange 38 --b-intra --ref 4 --weightb --rc-lookahead 70 --rd 3 --scenecut 40 --keyint 240 --min-keyint 1 --ctu 32 --no-amp --psy-rd 2.0 --psy-rdoq 1.0 --rdoq-level 2  --no-open-gop --qcomp 0.65 --aq-mode 2 --aq-strength 0.9 --deblock -1:-1 --output-depth 10 -o "output\%%~ni.hevc" --y4m -

    for %%i in (*.avs) do x265.exe --input-depth 10 --pool 16 --crf 15 --preset medium --bframes 6 --no-sao --no-strong-intra-smoothing --qg-size 8 --pbratio 1.2 --cbqpoffs -2 --crqpoffs -2 --me 3 --subme 5 --merange 38 --b-intra --ref 4 --weightb --rc-lookahead 70 --rd 3 --scenecut 40 --keyint 240 --min-keyint 1 --ctu 32 --no-amp --psy-rd 2.0 --psy-rdoq 1.0 --rdoq-level 2  --no-open-gop --qcomp 0.65 --aq-mode 1 --aq-strength 0.8 --deblock -1:-1 --output-depth 10 "%%i" -o "output\%%~ni.hevc"

    3.
    VSFilter / VSFilterMod 在 YUV420 8-bit 下載入字幕可能也會在色彩轉換上出現問題
    此話何解, 與YCbCr Matrix 有關嗎?
    如果我一直不論是 YUV420 8bits OR YUV420 10bits 的源都用VSFilter輸出 10bit 有問題嗎? >_<


    4.
    我想8bit > 10bit 轉換是沒什麼影響, 而 10bit > 8bit 是有損轉換, 是這樣沒錯嗎?
    如果是的話, DSS AVS+ output 只支持 8bit 對 x265 的 10 bit 輸出有什麼影響?









    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情

    2024-1-29 00:43
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    11

    主题

    89

    回帖

    3694

    VC币

    荣誉会员

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

    积分
    137521

    崭露头角

    okmijnuhb2C1  楼主| 发表于 2023-3-18 13:08:16 | 显示全部楼层
    joker2000 发表于 2023-3-18 11:33
    对于 x265 同参数下,10bit 会比 8bit 有更高的压缩率,因为对 10bit 做了优化,x265-8bit 一般不推荐使用 ...

    感謝回覆, 我 x264/x265 全都是 輸出 10bit的, 只是input 上源濾鏡色深有點問題
    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情
    开心
    2018-4-25 16:23
  • 签到天数: 1 天

    [LV.1]初来乍到

    16

    主题

    92

    回帖

    5626

    VC币

    版主

    Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

    积分
    283676

    崭露头角CD!BD!新人登场

    vxzms 发表于 2023-3-18 19:17:34 | 显示全部楼层
    okmijnuhb2C1 发表于 2023-3-18 13:07
    感謝回覆, 我 x264/x265 全都是 輸出 10bit的, 那看來我應該全面轉用ffms2 好了, 看wiki 好像DSS沒有 P010 ...

    1. 我覺得應該是這樣,但我不太清楚為什麼 x265 在內部轉換時會造成這種差異
    2. 這兩種第一個用 ffmpeg pipe 的方法應該沒有問題,如果你想輸出 10-bit 的話最好讓 AVS+ 輸出的也為 10-bit,8-bit 片源可以在輸出到 x265 前轉換到 10-bit
    3. 有關但關係不大,這個問題可以通過轉換到 RGB 來解決,但就有點麻煩了,我記不清最新的 vsfmod 有沒有解決這個問題
    4. 8-bit > 10-bit 一般是簡單填 0,應該沒有太大影響,10-bit > 8-bit 受使用算法影響比較大。如果片源只有 8-bit,DSS output 8-bit 是沒有影響的,但如果片源是 10-bit,就進行了一個劣質的 down bitdepth。x265 輸入 8-bit 輸出 10-bit 影響的可能就只有你主樓不明的體積影響了(?

    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情

    2024-1-29 00:43
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    11

    主题

    89

    回帖

    3694

    VC币

    荣誉会员

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

    积分
    137521

    崭露头角

    okmijnuhb2C1  楼主| 发表于 2023-3-18 19:43:00 | 显示全部楼层
    本帖最后由 okmijnuhb2C1 于 2023-3-18 19:51 编辑
    vxzms 发表于 2023-3-18 19:17
    1. 我覺得應該是這樣,但我不太清楚為什麼 x265 在內部轉換時會造成這種差異
    2. 這兩種第一個用 ffmpeg p ...

    這兩種第一個用 ffmpeg pipe 的方法應該沒有問題,如果你想輸出 10-bit 的話最好讓 AVS+ 輸出的也為 10-bit,8-bit 片源可以在輸出到 x265 前轉換到 10-bit

    8bit 源也輸出 為 AVS+ 10bit 至 x265, avs你會怎麼寫?

    pipe 那邊是不是已經在 -pix_fmt yuv420p10le 強制輸出 10bit yuv?


    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情
    难过
    2023-5-21 13:05
  • 签到天数: 264 天

    [LV.8]以坛为家I

    9

    主题

    217

    回帖

    172

    VC币

    高级会员

    Rank: 4

    积分
    34687
    208haf 发表于 2023-3-19 00:09:04 | 显示全部楼层
    本帖最后由 208haf 于 2023-3-19 00:15 编辑
    okmijnuhb2C1 发表于 2023-3-18 13:07
    3.
    VSFilter / VSFilterMod 在 YUV420 8-bit 下載入字幕可能也會在色彩轉換上出現問題
    此話何解, 與YCbCr Matrix 有關嗎?
    如果我一直不論是 YUV420 8bits OR YUV420 10bits 的源都用VSFilter輸出 10bit 有問題嗎? >_<

    还是建议在较高的位深下加字幕。我一般都是在 16bit 下加字幕再降到 10bit 或 8bit 的。

    http://avisynth.nl/index.php/VSFilterMod
    https://github.com/computerfan/VSFilterMod
    https://github.com/Masaiki/VSFilterMod
    不过按这里来看,色彩的转换似乎已经修复了。


    本帖子中包含更多资源

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

    x
    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情

    2024-1-29 00:43
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    11

    主题

    89

    回帖

    3694

    VC币

    荣誉会员

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

    积分
    137521

    崭露头角

    okmijnuhb2C1  楼主| 发表于 2023-3-19 00:48:42 | 显示全部楼层
    本帖最后由 okmijnuhb2C1 于 2023-3-19 01:48 编辑
    208haf 发表于 2023-3-19 00:09
    还是建议在较高的位深下加字幕。我一般都是在 16bit 下加字幕再降到 10bit 或 8bit 的。

    http://avisynth ...

    好的, 謝謝

    居體做法是怎麼寫 AVS? 參考一下 :))
    回复 支持 0 反对 1

    使用道具 举报

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

    本版积分规则

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