头像
nuomi
帖子: 197
注册时间: 2010-09-25 12:59

Re: [求助] VFR-MP4压制成MKV-字幕内嵌(动画)

http://www.nmm-hd.org/newbbs/viewtopic.php?f=8&t=219 x264_tMod
源为 VFR,ASS 的时间对应源,tMod 直接压。
大概思路就这样,详细参数参考上面的链接,很久没压东西就不贴参数害人了。
头像
msg7086
帖子: 600
注册时间: 2011-02-19 0:49

Re: [求助] VFR-MP4压制成MKV-字幕内嵌(动画)

说真的我很久没做过内嵌了,更很久没做过vfr内嵌了……所以只能从理论上帮你,真不行我也没办法了……
Delogo LGD Collections 各种台标下载 | Home Of VapourSynth Evolution

<回答が無い理由>
1. 誰も知らない
2. 質問文が意味不明
3. 知ってるが、お前の態度が気に入らない
4. 良いボケが思いつかない
XJERRY
帖子: 9
注册时间: 2014-01-20 13:02

Re: [求助] VFR-MP4压制成MKV-字幕内嵌(动画)

虽然最后没有成功,但还是谢谢nuomi与msg7086两位的协助^_^
而06_taro大的tMod我不会用和没有参考数据我也写不出来(果然是个新手><)
所以最后没有透过nuomi大所提供的「tMod方法」,在此说声抱歉。
XJERRY
帖子: 9
注册时间: 2014-01-20 13:02

Re: [求助] VFR-MP4压制成MKV-字幕内嵌(动画)

教学V2

需求者:使用MEGUI压制影片(字幕内嵌)时发生影音不同步的情形>_<
            <VFR-MP4压制成MKV-字幕内嵌(动画)>
原因:因为此影片是VFR(可变帧率)的!而非CFR(不可变帧率)

------------------------------------------------------------------------------------------------
架构图:
一,所需工具
二,抽取TIMECODE
       (一),如果是MP4
       (二),如果是MKV
       (三),MP4和MKV通用
三,压制
       (一),最简单的方法(新手也能会)
       (二),最快的方法--- tMod(进阶使用者)
       (三),网路中的教学整理
     A.在AEGISUB载入时码(时间码)
         B-1.用MEGUI产生之AVS脚本
           B-2.自己造一个AVS脚本
四,压制后的合成

<EX>如果上面都不行的最终手段
-------------------------------------------------------------------------------------------------

一,所需工具
     在开始前,必须有以下软件
      MEGUI
      MKVToolNix
      AVI TC PACKAGE(不一定)
      dtsEdit(不一定)
-----------------------------------------------------------------      
二,抽取TIMECODE
    由于是VFR,必须抽取TC

    (一),如果是MP4
       请使用dtsEdit
      
    (二),如果是MKV
       请使用MKVToolNix中---> mkvextract

       那dtsEdit与mkvextract该如何使用呢?
      
请复制下列代码到你的记事本,并另存新档成一个bat
然后把你要使用的视频拖曳到这个BAT上

代码: 全选

echo off
cd "/d %~dp0"
:start
set sourceext=mp4
if exist "%~dpn1.mkv" set sourceext=mkv
if "%sourceext%"=="mp4" "D:\TOOL\VIDEO\TURN\MeGUI\tools\dtsEdit\DtsEdit.exe" -tv 2 -o "%~f1.tc2.txt" "%~f1"
if "%sourceext%"=="mkv" "D:\TOOL\VIDEO\TURN\MeGUI\tools\mkvmerge\mkvextract.exe" timecodes_v2 "%~f1" 1:"%~f1.tc2.txt"
shift
if not "%~1"=="" goto start
echo. & pause
  
<自行更改处>
请自行更改你dtsEdit.exe与mkvextract.exe的完整路径

(参考http://www.nmm-hd.org/newbbs/viewtopic. ... dit#p42102)

(三),MP4和MKV通用
如果不用上面那个,那就用这个
===>>>>请复制下列代码到你的记事本,并另存新档成一个avs
然后用播放器打开,就会得到TC

代码: 全选

LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\x86\ffms2.dll")
ffvideosource("xxx.mp4",timecodes="1.txt")
assumefps(24000,1001)
LoadPlugin内填「ffms2.dll」的完整路径(AviSynth 2.5里有)
ffvideosource内填影片的完整路径(mkv也可)

(参考http://bbs.52wy.com/forum.php?mod=viewthread&tid=24529)

以上这两个提取方法都可以,皆会提取出TC(V2)
---------------------------------------------------------------------
三,压制
(一),最简单的方法(新手也能会)

1。打开MEGUI--->载入影片
2。载入字幕
3。接下来是关键的一步!
圖片 10.png
圖片 11.png
加入下列代码

代码: 全选

                Assumefps(24000,1001)
                TextSub("你已经载入的字幕.ass", vfr="timecode文件路径")

也就是将
TextSub("你已经载入的字幕.ass", 1")变成
TextSub("你已经载入的字幕.ass", vfr="timecode文件路径")
圖片 12.png
4.然后正常压制
---->>>>接''四''

(二),最快的方法--- tMod(进阶使用者)
请看#16 (By cunhan)
http://www.nmm-hd.org/newbbs/viewtopic. ... 317#p11320

(三),网路中的教学整理(其他方法)
A.在AEGISUB载入时码(时间码、TC)
打开AEGISUB,影片-----开启时码档案
圖片 1.png
然后档案--------汇出
影片的fps由tc決定,而内部设定如图
圖片 3.png
这样就得到了修改后的ASS

B.压制
B-1.用MEGUI产生之AVS脚本
直接压,不解释

B-2.自己造一个AVS脚本
请复制下列代码到你的记事本,并另存新档成一个avs,然后用MEGUI打开

代码: 全选

LoadPlugin("xxx\vsfilter.dll") 
DirectShowSource("xxx.mp4",25.802)
textsub("xxx.ass")
<自行更改处>
LoadPlugin内填「vsfilter.dll」的完整路径(建议32bit) <MPC-HC or MEGUI 里有>
DirectShowSource内填影片的完整路径(mkv也可),后面的数字是FPS(25.802)<改成23.976 or 29.970>
textsub内填字幕的完整路径

--------------------------------------------------------------------

四,压制后的合成
接着开启MKVToolNix---mmg.exe
圖片 4.png
反白影片,然后载入时间码
(tMod无须此步骤,其他都要)
====>完成!!!!


-----------------------------------------------------------------------------------------------------------

理论上上述方法都会成功使影片字幕同步
但如果真的不行
下面提供一个不专业但一定能同步的方法><

接續
上次由 XJERRY 在 2014-02-05 13:24,总共编辑 15 次。
XJERRY
帖子: 9
注册时间: 2014-01-20 13:02

Re: [求助‧未解决] VFR-MP4压制成MKV,字幕内嵌(动画)<第14楼有教学>

<EX>如果上面都不行的最终手段(不专业)
如果上述方法未成功
可用以下不专业的做法

一,二都一样
只是接着要用猎奇的方法处理

(以FPS=25.082为例子)

1.使用mediainfo
圖片 5.png
圖片 5.png (13.54 KiB) 查看 7608 次
记住 「frame rate」

2.打开AVI TC PACKAGE
汇入TC
输入「frame rate」
圖片 8.png
======>输出新TC

3.在AEGISUB载入时码(用新TC)
此处的FPS应该与上述的「frame rate」一样

4.用MEGUI压制
在x264的視窗內输入--fps25.082
<自行更改>
圖片 9.png
---->压制

5.开启MKVToolNix---mmg.exe
反白影片,然后载入时间码====>完成!!!!

此为我自行研究出的方法,非常不专业, 但仍达到内嵌的效果,仅供大家参考。
----------------------------------------------------------------------------------------------------------------
後記
此为网路资讯的整合版+我消化后的结果+我自行研究出的方法,供大家参考,
有问题也不要问我,我只是个新手><,只是把学到的事告诉大家


特别感谢
感谢msg7086大,帮助我不断地除错
感谢cunhan大,直接说中解决方法,让VFR--->内嵌不再这么繁覆及困难
感谢nuomi 大,提供tMod的方法



希望不会的人之后再看到VFR时也能成功内嵌^_^

BY XJERRY
上次由 XJERRY 在 2014-01-29 14:25,总共编辑 5 次。
cunhan
核心会员
核心会员
帖子: 214
注册时间: 2010-09-20 22:09

Re: [求助‧未解决] VFR-MP4压制成MKV,字幕内嵌(动画)<第14楼有教学>

Assumefps(24000,1001)
TextSub("D:\baiduyundownload\[OWA Raws] Higurashi no Naku Koro ni 01-26 (1280x720 h264 AAC)\1.ass", vfr="timecode文件路径")
按楼主最开始的做法,只要手动修改一下avs,让Textsub加载timecode文件,字幕不需要经过ageisub导出,直接用原始的就能同步了。

tMod可以这样用,不需要megui也不需要avs也不需要ageisub
x264.exe --crf 24 --sub "1.ass" --vf subtitles -o output.mp4 input.mp4
红字的参数是内嵌字幕必要的,其他压制参数请自行按需补充修改。

不管哪种方法,压完后封装的时候,也不要忘记给视频封入timecode。
头像
msg7086
帖子: 600
注册时间: 2011-02-19 0:49

Re: [求助‧未解决] VFR-MP4压制成MKV,字幕内嵌(动画)<第14楼有教学>

cunhan 写了:tMod可以这样用,不需要megui也不需要avs也不需要ageisub
x264.exe --crf 24 --sub "1.ass" --vf subtitles -o output.mp4 input.mp4
红字的参数是内嵌字幕必要的,其他压制参数请自行按需补充修改。

不管哪种方法,压完后封装的时候,也不要忘记给视频封入timecode。
tMod直接出vfr不需要封timecode {:cat_11}
Delogo LGD Collections 各种台标下载 | Home Of VapourSynth Evolution

<回答が無い理由>
1. 誰も知らない
2. 質問文が意味不明
3. 知ってるが、お前の態度が気に入らない
4. 良いボケが思いつかない
XJERRY
帖子: 9
注册时间: 2014-01-20 13:02

Re: [已解决‧感谢大家]<教学编写完成> VFR-MP4动画压制成MKV(字幕内嵌)<教学于14楼>

感谢你们的帮忙><
终于成功了!

回到 “视频编码器 / Video encoder discussion”