搜索 社区服务 统计排行 帮助
  • 14562阅读
  • 35回复

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

楼层直达
级别: 版主
注册时间:
2002-12-02
在线时间:
0小时
发帖:
3002
[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 作交流

级别: 版主
注册时间:
2002-12-02
在线时间:
0小时
发帖:
3002
只看该作者 1楼 发表于: 2003-10-23
如圖按 Encode 時發生 Error


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


壓製後可播放正常之 RMVB

级别: 骑士
注册时间:
2003-04-17
在线时间:
0小时
发帖:
1338
只看该作者 2楼 发表于: 2003-10-23
WEILAI,终于来了?我才中奖,不知是啥让我的机器的注册表傻了!引入也不行,莫非木马???之后,只有GHOST恢复,不过损失惨重的说!
还有,怎么用VD的字幕插件,那个又不行,麻烦!还是VSFILTER简单;)
你发的帖我总是要顶的!
:o 我怎么啥时候成了岚风??:confused: :eek:

EMULE ID:yzj[eDtoon][CHN][lh.2y.net][VeryCD]这个现在比较少用
AMULE ID:yzjamule[CHN][TLF][eDtoon][VeryCD] 持续运行中
级别: 版主
注册时间:
2002-12-02
在线时间:
0小时
发帖:
3002
只看该作者 3楼 发表于: 2003-10-23
那真不幸
Windows 的注册表通常要用Tool 導入才好
XP 就有5 個
VD的字幕插件 不知是指什麼 ? ^^||

级别: 圣骑士
注册时间:
2002-08-29
在线时间:
0小时
发帖:
1567
只看该作者 4楼 发表于: 2003-10-23
楼主压的是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\下。

摘自 <<十九世纪的科学>>

关于时间旅行
时间是人类为区分物质的运动状态作的标识, 它只存在于人的意识中, 因此, 要实现时间旅行也只能在人的想象中。

关于宇宙空间和光
宇宙空间里填充着大量不可见物质, 光是人类所能直接观测到的能量在这些物质间传递的一种现象。它的传送速度也是人类现今所知的最快速度。
级别: 版主
注册时间:
2002-12-02
在线时间:
0小时
发帖:
3002
只看该作者 5楼 发表于: 2003-10-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

级别: 版主
注册时间:
2001-11-21
在线时间:
0小时
发帖:
2803
只看该作者 6楼 发表于: 2003-10-23
为什么不用vsfilter啊......
这样不用转换成ConvertToRGB32().........
可以省不少时间......
而且也可以减少画质的损失............

live id: liusu119@hotmail.com
email: liusu119@gmail.com
级别: 版主
注册时间:
2002-12-02
在线时间:
0小时
发帖:
3002
只看该作者 7楼 发表于: 2003-10-23
引用
最初由 skywalker 发布
为什么不用vsfilter啊......
这样不用转换成ConvertToRGB32().........
可以省不少时间......
而且也可以减少画质的损失............


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

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

级别: 新手上路
注册时间:
2003-02-27
在线时间:
0小时
发帖:
36
只看该作者 8楼 发表于: 2003-10-24
引用
最初由 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") 就行了。
级别: 版主
注册时间:
2002-12-02
在线时间:
0小时
发帖:
3002
只看该作者 9楼 发表于: 2003-10-24
(終版後)總結一下各樓建言

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

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

级别: 风云使者
注册时间:
2003-05-04
在线时间:
1小时
发帖:
6095
只看该作者 10楼 发表于: 2003-10-24
又看到这么好的教程,收了
级别: 骑士
注册时间:
2002-10-04
在线时间:
0小时
发帖:
941
只看该作者 11楼 发表于: 2003-10-24
用dna producer 能导入avs来压吗?

级别: 新手上路
注册时间:
2002-07-02
在线时间:
0小时
发帖:
43
只看该作者 12楼 发表于: 2003-10-24
ps:最后那种方法不好,会出现音画不同步现象,如果要转fps30的话用SelectEvery(4,0),也就是D的方法比较精确,最好被音视频分开,否则出现音画不同步现象的可能性很大。
级别: 版主
注册时间:
2002-12-02
在线时间:
0小时
发帖:
3002
只看该作者 13楼 发表于: 2003-10-24
引用
最初由 Alucard001 发布
用dna producer 能导入avs来压吗?


可以試試看
應該可以

级别: 版主
注册时间:
2002-12-02
在线时间:
0小时
发帖:
3002
只看该作者 14楼 发表于: 2003-10-24
工具的安裝上
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 確定關閉之

快速回复

限150 字节
上一个 下一个