『漫游』酷论坛>『影音数码技术学习交流』>[原创]dshow2raw工具发布 ..

roozhou@2009-06-01 21:56

没有dshow的话用什么接口呢?
--sub依赖vsfilter,这个也是只能在windows下用的。libass还很不完善,aegisub作者说要开发的Kumaji到现在也只是空壳。根本没有各平台通用的字幕插件。
引用

ssnake@2009-06-01 22:41

引用
最初由 roozhou 发布
没有dshow的话用什么接口呢?
--sub依赖vsfilter,这个也是只能在windows下用的。libass还很不完善,aegisub作者说要开发的Kumaji到现在也只是空壳。根本没有各平台通用的字幕插件。
ffmpeg?或者从CoreVideo之类的里Dump(嘛我完全不知道可行性。。)?其实不做解码端也不要紧,主要是想要其他的功能= = 现在在非Win平台上做内嵌很痛苦= =

libass还算过得去,目前正常的ass、ssa、srt没发现什么问题。至于非正常的粒子之类的,libass很容易crash,不过一般也用不上吧(正常一点的粒子效率感觉比VSFilter还高,我一个2MB左右的粒子特效,在Win的MPC-HC+ffdshow的VSFilter上卡,在Mac OS X的mplayer+libass上不卡,都是ffmpeg解码,都没开MT,版本的话win下面的还要新一点,当然不排除是BootCamp之后性能受影响)……

说起来我在别的平台下也没成功编译过AegiSub。。
引用

roozhou@2009-06-01 23:25

问下libass什么时候支持assdraw了?
效率自然是libass高,毕竟是C写的。

有时间的话我可以对libass进行改进,争取取代VSFilter
引用

wingsinsky@2009-06-19 12:31

这两天开始学着用dshow2raw,请问能把音频、视频处理用一个bat搞定,输出成mp4格式么?
引用

roozhou@2009-06-19 14:27

你还需要一个mux工具,ffmpeg或mp4box
我提供了一个精简版的ffmpeg:
http://www.damipan.com/file/22lEUUp.html

其他的x264参数用...省略,输出为output.mp4

start /MIN /BELOWNORMAL ctaacencoder.exe -b 64000 -m 1 -d -o tmp_a.aac %1
x264 %1 ... -o tmp_v.mp4
ffmpeg -i tmp_v.mp4 -vcodec copy -i tmp_a.aac -acodec copy output.mp4
del tmp_v.mp4
del tmp_a.aac
引用

wingsinsky@2009-06-20 02:31

继续求指点。
引用
start "压音频啊" /D "D:\Program Files (x86)\Encoder\dshow2raw" /MIN /BELOWNORMAL ctaacencoder.exe -b 64000 -m 1 -d -o "F:\tmp_a.acc" "D:\[A]Animation\[E]铁腕巴迪\铁腕巴迪_DECODE_S1[01].mkv"

x264 --crf 26 --level 3 --ref 3 --mixed-refs --no-fast-pskip --bframes 3 --b-pyramid --weightb --direct auto --subme 7 --trellis 1 --psy-rd 0.0:0 --partitions p8x8,b8x8,i4x4,p4x4 --me umh --merange 24 --threads 4 --thread-input --progress --no-dct-decimate --no-psnr --no-ssim --versioninfo --swapuv -o "F:\tmp_v.mp4" "D:\EncoderOut\铁腕巴迪 AVS\铁腕巴迪_DECODE_S1[01].avs"

ffmpeg -i "F:\tmp_v.mp4" -vcodec copy -i "F:\tmp_a.acc" -acodec copy "D:\EncoderOut\铁腕巴迪_DECODE_S1\铁腕巴迪_DECODE_S1[01].mp4"
del "F:\tmp_v.mp4"
del "F:\tmp_a.acc"

bat文件内容如上,过程很顺利,视频部分也OK,但是生成的MP4文件音频部分完全是杂音。
cmd窗口下单独运行音频部分代码,确认tmp_a.acc完全是杂音
引用

roozhou@2009-06-20 03:10

aac不是acc好吧

还有不要用avs来压啊,直接读源文件
引用

wingsinsky@2009-06-20 04:00

avs是用来改分辨率的,这帖之前那个在ffd里设置我没看懂。

扩展名的低级错误修正了,但结果还是不行,我换了一个小的视频测试,完成后全是噪音。

引用
D:\Media_Store\nico\sm7157371.mp4
General
Complete name : D:\Media_Store\nico\sm7157371.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 14.4 MiB
Duration : 2mn 19s
Overall bit rate : 866 Kbps
Encoded date : UTC 2009-05-24 16:21:37
Tagged date : UTC 2009-05-24 16:21:37
Copyright : SMILEVIDEO_MP4
Video #1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L3.0
Format settings, CABAC : Yes
Format settings, ReFrames : 3 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 2mn 19s
Bit rate mode : Variable
Bit rate : 800 Kbps
Maximum bit rate : 1 615 Kbps
Width : 512 pixels
Height : 384 pixels
Display aspect ratio : 4/3
Frame rate mode : Constant
Frame rate : 29.970 fps
Resolution : 24 bits
Colorimetry : 4:2:0
Scan type : Progressive
Bits/(Pixel*Frame) : 0.136
Stream size : 13.3 MiB (92%)
Writing library : x264 core 67 r1120 8544346
Encoding settings : cabac=1 / ref=3 / deblock=1:-2:-2 / analyse=0x3:0x113 / me=umh / subme=9 / psy_rd=0.5:0.0 / mixed_ref=1 / me_range=32 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / chroma_qp_offset=-2 / threads=1 / nr=0 / decimate=1 / mbaff=0 / bframes=5 / b_pyramid=1 / b_adapt=2 / b_bias=0 / direct=3 / wpredb=1 / keyint=300 / keyint_min=30 / scenecut=54 / rc=2pass / bitrate=800 / ratetol=1.0 / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=16 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / pb_ratio=1.30 / aq=1:1.00
Encoded date : UTC 2009-05-24 16:00:22
Tagged date : UTC 2009-05-24 16:21:37
Audio #2
Format : AAC
Format/Info : Advanced Audio Codec
Format version : Version 4
Format profile : LC
Format settings, SBR : No
Codec ID : 40
Duration : 2mn 19s
Bit rate mode : Variable
Bit rate : 62.0 Kbps
Maximum bit rate : 66.0 Kbps
Channel(s) : 2 channels
Channel positions : L R
Sampling rate : 44.1 KHz
Resolution : 16 bits
Stream size : 1.03 MiB (7%)
Encoded date : UTC 2009-05-24 16:21:37
Tagged date : UTC 2009-05-24 16:21:37


现在的bat内容
引用
set hpath=D:\Program Files (x86)\Encoder\dshow2raw
set ipath=D:\Media_Store\nico
set opath=D:\EncoderOut\
set wpath=F:

start "音频压制中" /D "%hpath%" /MIN /BELOWNORMAL ctaacencoder.exe -b 64000 -m 1 -d -o "%wpath%\tmp_a.aac" "%ipath%\sm7157371.mp4"

"%hpath%\x264" --crf 26 --level 1 --ref 3 --mixed-refs --no-fast-pskip --bframes 3 --b-pyramid --weightb --direct auto --subme 5 --trellis 1 --psy-rd 0.0:0 --partitions p8x8,b8x8,i4x4,p4x4 --me umh --merange 24 --threads 0 --thread-input --progress --no-dct-decimate --no-psnr --no-ssim --versioninfo --swapuv -o "%wpath%\tmp_v.mp4" "%ipath%\sm7157371.mp4"

"%hpath%\ex\ffmpeg" -i "%wpath%\tmp_v.mp4" -vcodec copy -i "%wpath%\tmp_a.aac" -acodec copy "%opath%\sm7157371_new.mp4"
del "%wpath%\tmp_v.mp4"
del "%wpath%\tmp_a.aac"
pause

尝试用下面格式的语句来完成音频部分,
dshow2wav.exe E:\VIDEO_TS\VTS_01_0.IFO 2 | neroaacenc.exe -q 0.2 -ignorelength -if - -of dvd_audio.mp4
但在neroaacenc的界面出现后就会出现:could not parse wav file。
音频还是没搞定。

唔,命令行真好玩~
MeGUI、MediaCoder都去死吧。
引用

roozhou@2009-06-20 05:20

有graphedit的话,直接播放你要编码的文件,看看声音对不对

引用

dshow2wav.exe E:\VIDEO_TS\VTS_01_0.IFO 2 | neroaacenc.exe -q 0.2 -ignorelength -if - -of dvd_audio.mp4


第一条音轨是0,第二条是1,你确定你的DVD中有三条音轨?
还有vtsreader.ax有没有注册了?
引用

wingsinsky@2009-06-20 14:04

register_filters.bat运行过了,grapedit我找一下吧,
引用

第一条音轨是0,第二条是1,你确定你的DVD中有三条音轨?

呃…昨晚测试时的参数是1,测试用文件信息就是上面贴出来的,只有一条音轨,
于是为了确认自己没有修改过说明txt,我又下了一次顶楼的压缩包,
引用

【使用示例】
将DVD(盘符E: )的第2条音轨用neroaacenc编码
dshow2wav.exe E:\VIDEO_TS\VTS_01_0.IFO 2 | neroaacenc.exe -q 0.2 -ignorelength -if - -of dvd_audio.mp4。

于是以为1就是第一条、2就是第二条
刚才把 [aid] 删除后命令行如下
引用

start "音频压制中" /D "%hpath%" /MIN /BELOWNORMAL dshow2wav.exe "%ipath%\sm7157371.mp4" | "%hpath%\ex\neroaacenc.exe" -q 0.25 -ignorelength -if - -of "%wpath%\tmp_a.acc"

cmd窗口输入,还是出现了一样的提示信息。
引用

roozhou@2009-06-20 14:13

好吧,你的写法错了,如果需要用start,命令行不是这么写的

start /BELOWNORMAL /MIN cmd.exe "/C dshow2wav %1 | neroaacenc -q 0.14 -ignorelength -if - -of %1.m4a"

注意neroaacenc输出的后缀应该是m4a或mp4,不是aac,更不是acc

如果播放是噪音,我首先怀疑的就是你的解码器输出不对。还有既然源是mp4,音频可能就是压过一次的aac了,推荐保留,不要再重压了
引用

wingsinsky@2009-06-20 14:51

半吊子果然不该玩太猛,嘛,暂时没时间了,
晚点把解码器更新一道再试试,
感谢lz的耐心指点。
引用

xyly@2009-06-21 02:02

厄,为啥不先试一下把音频放到播放器里播放呢……
引用

roozhou@2009-06-22 17:43

再次更新
现在已经可以使用auto 2pass了
引用

wingsinsky@2009-06-28 15:58

几乎都已经绝望的情况下视频、音频压缩终于能顺利进行了,然后是封装继续出问题……

start /b /low /wait %D2Rpath%ffmpeg.exe -i "%TEMP%%NAME%_v_temp.mp4" -i "%TEMP%%NAME%_a_tmp.m4a" -acodec copy "%PATH%enc\%NAME%.mp4"
执行结果:
unsupported codec for output stream #0.0

%NAME%_v_temp.mp4文件单独播放没问题,压制参数:
start /b /low /wait %D2Rpath%x264.exe "%FILE%" --smoothts --level 3.0 --crf 24 --no-cabac --aq-mode 1 --aq-strength 1.0 --keyint 300 --min-keyint 24 --

ref 3 --mixed-refs --bframes 3 --partitions all --psy-rd 0.0:0.0 --deblock 1:1 --subme 6 --me tesa --threads auto --thread-input --progress --no-psnr

--no-ssim --output "%TEMP%%NAME%_v_temp.mp4"

d2r是顶楼的最新版。
引用

«1314151617181920»共35页

| TOP