查看完整版本: [-- [原創]"[120fps+VBR_MP3].avi + [120fps+VBR_MP3]_Unicode.ssa字幕" 的 rm/rmvb 壓製(10/24 終版 --]

『漫游』酷论坛 -> 影音精华区 -> [原創]"[120fps+VBR_MP3].avi + [120fps+VBR_MP3]_Unicode.ssa字幕" 的 rm/rmvb 壓製(10/24 終版 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

weilai 2003-10-23 15:45

[原創]"[120fps+VBR_MP3].avi + [120fps+VBR_MP3]_Unicode.ssa字幕" 的 rm/rmvb 壓製(10/24 終版

[2004/1/8新編]
下面的 [2003年舊編] 那一篇是幾個月前寫的(才剛學),這裡在此做改良

如要取用avs範本請使用如下

==改良的avs範本==
LoadPlugin("vsfilter.dll")
AVISource("120fps.avi").ChangeFPS(59.94).TextSub("xx.ssa")
#如使用 xx.idx+xx.sub 字幕請將TextSub改成VobSub("xx.idx")
#如怕會壓製出影音不同步可在 AVISource 這一行最後加入 .EnsureVBRMP3Sync,如此就無懼 VBR_MP3 問題發生


PS.使用 59.94fps 的話理論上品質會比就好,而且壓製也沒問題
如果要用 VirtualDubMod 壓製

VDM最後要選壓縮格式(用Direct stream copy會直解取用Avisynth生成的無壓縮frame,所以會很大)
視訊:
VirtualDub→Video→Compression 選擇一編碼格式
舉個例子: 比如選 Xvid MPEG-4 code 編碼
進入 Configure 選 1 Pass-quality 用預設值 85 (相當於原大小 x 0.85)

音訊:
streams -> stream list -> 右鍵選 Full Processing mode -> 再右鍵選 Compression 找到 MPEG Layer-3 選自己喜換的品質

相關問題:
120fps动画用.avs导入压制结果音频正常视频是黑屏
============================================

[2003年舊編]
前言:
120 幀/每秒 率的影音檔常在 RM/RMVB 的壓製上並不是這麼單純,
原因出在製作的格式上,因此並不是所有 120fps 的影音檔都是不
可行的,這裡做出了一些方式以克服其針結以做出其 RM/RMVB 的
壓製,而方法(D)(E)之作為同時也不限於只針對 120fps的影音檔,也就
是只要不被 HPP9 等接受的格式,只要對.avs稍作修改理應都可成功壓製。

PS. "幀"又名頁框、Frame
========================================
簡稱之定義
VDM : VirtualDubMod
HPP9: Helix Producer Plus 9
AVS : AviSynth
========================================
問題: HPP9 不能 Encode "[120fps+VBR_MP3].avi + [120fps+VBR_MP3]_Unicode.ssa字幕" -> rm/rmvb (但可能可開啟)
來源AVI : 為 120fps/WMV3視訊/VBR-MP3音訊
========================================

方法:

[方法(A)]用 VDM、AviUtl、TMPGEnc Plus...等改成 30fps(使用重新編碼) :
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
結果畫面容易會變播放不順(播放時而有頓點),其原因在於此舉為有損再壓縮之原故
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA


[方法(B)]將音訊用VDM->streams->streams list->Demux擷取出來
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
再用 avi60.exe 改成讓 HPP9 接受的 (FPS).avi 格式 :
結果並不如預期而 avi60.exe 會改成 (2x120)fps or (4x120)fps 但播放正常,
最後用 VDM 將音視訊合成
PS. 這裡需注意:將音訊用VDM->streams->streams list->ADD 方式合成時,需選 "否" 才不會造成不同步現像

以上兩種方式會多花費一倍的前置處理時間 (即先全過程為 [avi+mp3+字幕] -> avi -> RM/RMVB)
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB


[方法(C)]如用 VDM or AVI Frame Rate Changer 直接改 FPS->30 :
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
結果生成的 .avi 會變成時間放慢(加長),雖也可被 HPP9 接受開啟,
但壓成的 rm/rmvb 也是會變成時間放慢(加長),所以不可行
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC



[方法(D)]用 .avs 導入方式
dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
1)首先同方法 2. 將音訊擷取出來[VBR_MP3].mp3
2)續(1)點兩下左欄的音訊除能之->OK,Video→Direct stream copy,Save as..(如存成 [120fps].avi)
3)將 [120fps+VBR_MP3]_Unicode.ssa 轉成 [120fps+VBR_MP3]_ANSI.ssa (應為VIRTUALDUB_subtitler.vdf不支援Unicode)
4)寫一 [30fps+VBR_MP3+ANSI_SSA].avs

~~~~~~~~~~~~~~~~~~~~~~內文如下~~~~~~~~~~~~~~~~~~~~~~~~~~
##################################################
# ~~~~~[井字號後敘述文為不執行行(即註解)]~~~~~~~ #
# 下方之全大寫文字為會意敘述如: VIRTUALDUB_PATH+ #
# 視個人安裝可能為 X:\Program Files\VirtualDub 等#
##################################################

global VirtualDub_plugin_directory = VIRTUALDUB_PATH+"\plugins"
function VD_Subtitler(clip clip, string filename)
{
LoadVirtualdubPlugin(VIRTUALDUB_PATH+"\plugins\subtitler.vdf","_VD_Subtitler")
return clip._VD_Subtitler(1, filename)
}

LoadPlugin(AVISYNTH2.5_PATH+"\plugins\mpasource.dll")
V=AVISource("[120fps].avi",false,"YUY2").SelectEvery(4,0).ConvertToRGB32().VD_Subtitler("[120fps+VBR_MP3]_ANSI.ssa").ConvertToYUY2()
# 精簡化的話如下 #
# V=AVISource("[120fps].avi",false,"RGB32").SelectEvery(4,0).VD_Subtitler("[120fps+VBR_MP3]_ANSI.ssa") #
A=MPASOURCE("[VBR_MP3].mp3")
Audiodub(V,A)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

5)最後執行 HHP9 開啟 [30fps+VBR_MP3+ANSI_SSA].avs -> 設置RM/RMVB範本設置 -> Encode
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD



[方法(E)]也是用 .avs 導入方式
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
只是簡化了不用對原檔作任何前置作業

~~~~~~~~~~~~~~~~~~~~~~內文如下~~~~~~~~~~~~~~~~~~~~~~~~~~
LoadPlugin(VSFILTER_PATH+"VSFilter.dll")
##############################################################
# VobSub(PATH+"_.idx") 或 TextSub(PATH+"_.srt") 命令 #
# 是Vobsub插件自定義的命令 #
# 語種選擇取決於idx文件中的 langidx: 參數。 #
# 您也可以通過rundll32 VSFilter,DirectVobSub 進入設定面板。 #
##############################################################

AVISource("120fps+VBR_MP3].avi",True,"YUY2").ChangeFPS(30).TextSub("[120fps+VBR_MP3]_Unicode.srt")
# AVISource("120fps+VBR_MP3].avi",True,"YUY2").ChangeFPS(30).VobSub("[120fps+VBR_MP3]_Unicode.idx")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PS.使用VSFilter.dll程式庫根據文獻只適合 _.idx(_.sub)及_.srt 兩種字幕
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE

========================================

參考文獻:
http://www.dvdrhelp.com/forum/archive/t177150.html
http://www.avisynth.org/index.php?page=VirtualDub_I
特別感謝: 岚轩、taitan1 網友

使用工具:
B2J for Win32 : 日中內碼互轉Tool
Microsoft AppLocale
ANSI日文字形(BIG5櫻花字形)

必備工具下載點:
[AviSynth 2.5]
http://keihanna.dl.sourceforge.net/sourceforge/avisynth2/AviSynth_252.exe
[AviSynth 插件 mpasource.dll]
http://www.avisynth.org/~warpenterprises/
[Virtualdub 插件 subtitler.vdf]
http://www.virtualdub.org/downloads/subtitler-2_3.zip
PS. 如是 .sub 請用 Vobsub_vd.vdf 濾鏡(Filters)

總結:
方法(D)為目前最好的方法,並且不會造成播放不順、總壓製時間長等問題
不過加入UniCode字幕之問題會造成多餘的處理步驟,只是相對於壓製時間
那就小多了,而方法(E)就不是那樣,應為是當音訊解碼也沒題時才可被執行
如有對相關不解地方有興趣歡迎 PM me 作交流

weilai 2003-10-23 15:46
如圖按 Encode 時發生 Error


使用 AVS 前導範本後可成功壓製 "[120fps+VBR_MP3].avi + [120fps+VBR_MP3]_Unicode.ssa字幕" -> rm/rmvb


壓製後可播放正常之 RMVB

岚轩 2003-10-23 16:28
WEILAI,终于来了?我才中奖,不知是啥让我的机器的注册表傻了!引入也不行,莫非木马???之后,只有GHOST恢复,不过损失惨重的说!
还有,怎么用VD的字幕插件,那个又不行,麻烦!还是VSFILTER简单;)
你发的帖我总是要顶的!
:o 我怎么啥时候成了岚风??:confused: :eek:

weilai 2003-10-23 17:09
那真不幸
Windows 的注册表通常要用Tool 導入才好
XP 就有5 個
VD的字幕插件 不知是指什麼 ? ^^||

caoxiao 2003-10-23 20:32
楼主压的是mp3的avi, 不需用MPASOURCE的。avs 这么写简单些
SetWorkingDir("C:\Program Files\AviSynth 2.5\plugins\")
function VD_Subtitler(clip clip, string filename)
{
LoadVirtualdubPlugin("subtitler.vdf","_VD_Subtitler")
return clip._VD_Subtitler(1, filename)
}
avisource("[120fps].avi")
ConvertToRGB32()
VD_Subtitler("[120fps+VBR_MP3]_ANSI.ssa ")
ChangeFPS(24)

ps: 注意要把subtitler.vdf拷到C:\Program Files\AviSynth 2.5\plugins\下。

weilai 2003-10-23 22:23
加上去了 Thx~
不過
avisource("[120fps].avi")
ConvertToRGB32()
VD_Subtitler("[120fps+VBR_MP3]_ANSI.ssa ")
ChangeFPS(24)
不行分開來寫
應該是
avisource("[120fps].avi").ChangeFPS(24).ConvertToRGB32().VD_Subtitler("[120fps+VBR_MP3]_ANSI.ssa ").ConvertToYUY2

由於字幕插件要先轉換成RGB32模式事後再換回YUY2

skywalker 2003-10-23 22:36
为什么不用vsfilter啊......
这样不用转换成ConvertToRGB32().........
可以省不少时间......
而且也可以减少画质的损失............

weilai 2003-10-23 22:45
引用
最初由 skywalker 发布
为什么不用vsfilter啊......
这样不用转换成ConvertToRGB32().........
可以省不少时间......
而且也可以减少画质的损失............


Thx~
已加了(方法(E))
也改了 ^^

PS. 只花一天去研究 ^^||
多謝大家指點

taitan1 2003-10-24 09:00
引用
最初由 weilai 发布
方法(E)也是用 .avs 導入方式
只是簡化了不用對原檔作任何前置作業
~~~~~~~~~~~~~~~~~~~~~~內文如下~~~~~~~~~~~~~~~~~~~~~~~~~~
LoadPlugin(VSFILTER_PATH+"VSFilter.dll")
AVISource("120fps+VBR_MP3].avi").ChangeFPS(30).TextSub("("[120fps+VBR_MP3]_Unicode.ssa")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

这句:
AVISource("120fps+VBR_MP3].avi").ChangeFPS(30).TextSub("("[120fps+VBR_MP3]_Unicode.ssa")
多了 (" 应是AVISource("120fps+VBR_MP3].avi").ChangeFPS(30).TextSub("[120fps+VBR_MP3]_Unicode.ssa")

VSFILTER_PATH 有些情况下找不到的,直接写 LoadPlugin("VSFilter.dll") 就行了。

weilai 2003-10-24 12:12
(終版後)總結一下各樓建言

方法(D)雖然腳本長了點
但是
適用範圍卻最廣
多試幾個影音源(不同的)就可體認到

PS.方法(E)雖然簡單但自己試了之結果比較會發生不可預期問題

ywwq 2003-10-24 16:48
又看到这么好的教程,收了

Alucard001 2003-10-24 21:43
用dna producer 能导入avs来压吗?

AwpHimura 2003-10-24 23:18
ps:最后那种方法不好,会出现音画不同步现象,如果要转fps30的话用SelectEvery(4,0),也就是D的方法比较精确,最好被音视频分开,否则出现音画不同步现象的可能性很大。

weilai 2003-10-24 23:31
引用
最初由 Alucard001 发布
用dna producer 能导入avs来压吗?


可以試試看
應該可以

weilai 2003-10-24 23:39
工具的安裝上
1.安裝AviSynth 2.5.x
2.將 mpasource.dll 移動到 C:\Program Files\AviSynth 2.5\plugins\ 內
3.將 subtitler.vdf 移動到 C:\Program Files\VirtualDub\plugins\ 內
PS. 請根據自己情況作调整

壓製時作業系統內需有安裝櫻花字形
http://hometown.aol.co.uk/wofpic/data/mingli.rar
解開後將mingli.tte檔案移動到 C:\WINDOWS\
並執行 regedit 如圖修改

重開機

如還是看不到 [] 框內日文 あ

請開啟 TrueType 造字程式 (或執行 %SystemRoot%\system32\eudcedit.exe)
取消 -> 檔案 -> 自行連結 -> 與選取字形連結 -> 點兩下細明體 選 C:\WINDOWS\mingli.tte 確定關閉之

tct66 2003-10-25 01:03
引用
最初由 AwpHimura 发布
ps:最后那种方法不好,会出现音画不同步现象,如果要转fps30的话用SelectEvery(4,0),也就是D的方法比较精确,最好被音视频分开,否则出现音画不同步现象的可能性很大。


方法(E)在播放時,如果對它拖曳會出现音画不同步现象
但壓制的時候,沒有這個問題

AwpHimura 2003-10-25 12:30
引用
最初由 tct66 发布


方法(E)在播放時,如果對它拖曳會出现音画不同步现象
但壓制的時候,沒有這個問題

^^,对,谢谢tct66帮我补充。

bosch 2003-10-27 18:44
120FPS的 avi片,如全金属狂潮II的 1 2,攻克 。
用 koepi Xvid 5/13 ,HPP9.01 ,或 BRP 都是可以直接压rmvb的(不要装ffdshow!)

没有必要动用avs之类复杂的东东。

weilai 2003-10-27 19:25
引用
最初由 bosch 发布
120FPS的 avi片,如全金属狂潮II的 1 2,攻克 。
用 koepi Xvid 5/13 ,HPP9.01 ,或 BRP 都是可以直接压rmvb的(不要装ffdshow!)

没有必要动用avs之类复杂的东东。


所以說是 120fps .wmv 嘛

Ghost8119 2003-10-31 22:28
bosch 所说的 koepi Xvid 5/13 哪里有下阿?我在网上找到最接近的也只不过是5/14的版本,并没有5/13的版本阿!!!
能不能给个下的地址?

snoopykittey 2003-11-04 09:07
晕倒,全金属2我安装了ffdshow,结果只能用DIVX5.1重新编码,再压缩
好还效果基本上一样~~~

weilai 2003-11-04 09:54
一些不相干的問題 ^^
不過還是回一下
To bosch 所说的 koepi Xvid 5/13 哪里有...
A: http://roeder.goe.net/~koepi/xvid.shtml 找找看 (stable) 穩定版的

To 晕倒,全金属2我安装了ffdshow,结果只能用DIVX5.1重新编码
A: 漫遊的是沒下過,但為何需要重新编码,不能看的話原則應該看你有無缺少相關 decoder (建議用 AVIcodec 察看)

history 2003-11-04 20:02
没用的方法就不要罗嗦了,直接讲正题就行了,搞的这么麻烦结果还没搞懂。

weilai 2003-11-04 21:30
引用
最初由 history 发布
没用的方法就不要罗嗦了,直接讲正题就行了,搞的这么麻烦结果还没搞懂。


這麼不客氣 ^^||

自己的文章寫作方式喜歡以分析的方式寫作
如果看不懂
建議先充實一下基本知識
不要只問收成不行耕耘

shinji 2003-11-10 09:37
多謝提供啦~~~~~~

阿根廷万岁 2003-11-18 15:48
好复杂。。还是学不会~~呵呵~~太菜了~~

堕天地狱 2003-11-22 10:47
请问,我用AVS命令转的
转成24fps,生成的文件暴卡
请问为什么会这样

weilai 2003-11-22 16:13
引用
最初由 堕天地狱 发布
请问,我用AVS命令转的
转成24fps,生成的文件暴卡
请问为什么会这样


捨棄畫格時
關鍵的平順畫格不幸被捨棄了
使然

原本例子是 120fps_.avi -> 30fps_.rmvb
你可以選擇 120fps_.avi --[取樣成 60fps]--> 60fps_.rmvb
應該可改善
將這行 V=AVISource("[120fps].avi",false,"YUY2").SelectEvery(4,0).。。。
改成 V=。。。。.SelectEvery(2,0).。。。

PS.因為 HPP或Batch Real Producer 最高可支援到 60fps_.AVI

怪怪人 2003-11-25 10:30
引用
最初由 bosch 发布
120FPS的 avi片,如全金属狂潮II的 1 2,攻克 。
用 koepi Xvid 5/13 ,HPP9.01 ,或 BRP 都是可以直接压rmvb的(不要装ffdshow!)

没有必要动用avs之类复杂的东东。


严重同意,建议初哥们不要学AVS了,不然头都大了.............
:D :D :D

hanfuchenglong 2003-12-15 16:52
谢谢 好文章

shippou2003 2004-01-13 23:44
楼主说的太简练了,对于我这样的初学者(完全没用过VDM和AVS),根本就像看天书一样~~能否麻烦大哥把d方案说得再语法通顺一些、详细一些?求您了~~因为这是救命的呀~~

difo 2004-01-17 07:52
更正一下....
mpasource.dll 下載點應該是
http://www.avisynth.org/warpenterprises
weilai兄說的那個網頁找不到了...@@

difo 2004-01-17 07:58
對了...順便再問一下...
那個vsfilter.dll要放在哪裡呢??
我用brp轉的時候它說找不到vsfilter.dll...@@a

星之失 2004-01-18 13:26
引用
最初由 difo 发布
對了...順便再問一下...
那個vsfilter.dll要放在哪裡呢??
我用brp轉的時候它說找不到vsfilter.dll...@@a

VDM所在文件夹中有Plugins文件夹,放在里面.
我还没试过,详细看这里http://www.shooter.com.cn/?artid=10&show=1

daphnetd 2004-05-29 05:32
引用
最初由 bosch 发布
120FPS的 avi片,如全金属狂潮II的 1 2,攻克 。
用 koepi Xvid 5/13 ,HPP9.01 ,或 BRP 都是可以直接压rmvb的(不要装ffdshow!)

没有必要动用avs之类复杂的东东。


这个是把压内嵌后的AVI再压RMVB吧?

这个不够直接用片源+字幕的好 

因为内嵌的时候已经把AVI重做了 然后再压RMVB 算起来是双重损失

质量低了一个层次

写AVS的话可以直接用片源+字幕来压 质量算起来是一次损失

精益求精的压缩方法 还是写AVS用片源+字幕直接压的好

tangyuncat 2004-07-13 21:43
太感谢了
我用的是

LoadPlugin("VSFilter.dll")
AVISource120fps+VBR_MP3].avi",True,"YUY2").ChangeFPS(30).TextSub("120fps+VBR_MP3].ssa")

只要这样写就够了

压出来画面声音都没有问题
字幕也是原来的字体


查看完整版本: [-- [原創]"[120fps+VBR_MP3].avi + [120fps+VBR_MP3]_Unicode.ssa字幕" 的 rm/rmvb 壓製(10/24 終版 --] [-- top --]


Powered by phpwind v8.5 Code ©2003-2011 phpwind
Time 0.020482 second(s),query:2 Gzip disabled