『漫游』酷论坛>『影音数码技术学习交流』>影音精华区>[原創]"[120fps+VBR_MP3 ..
[原創]"[120fps+VBR_MP3].avi + [120fps+VBR_MP3]_Unicode.ssa字幕" 的 rm/rmvb 壓製(10/24 終版
weilai@2003-10-23 15:45
[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 確定關閉之
«123»共3页
| TOP