level 11
一般的mencoder解码通过管道发给X264编码命令是这样
mencoder input.mkv -vf format=yv12 -of rawvideo -ovc raw -nosound -o - | x264 [options] --input-res 1280x720 --input-csp yv12 -o output.264 -
怎么mediacoder里的mencoder命令行是这样:
".\codecs\mencoder.exe" -quiet -of rawvideo -ovc raw -rawvidopts pipe=0x000002F4 -ofps 2997/125 -channels 2 -sub-fuzziness 1 -subfont-autoscale 3 -subfont-text-scale 3 -subfont-blur 2 -subfont-outline 2 -subfont D:\字库\msyh.ttf -utf8 -sub "XXX.srt" -demuxer mkv -demuxer mkv -vf-add scale=720:388:0:0 -vf-add format=i420 -vf-add harddup -af resample=44100:0:0,channels=2,volume=5:0 -oac pcm -pcmopts pipe=0x0000030C -mc 0 "XXX.mkv" -o NUL
-rawvidopts pipe=0x000002F4
-pcmopts pipe=0x0000030C
这2个什么参数?
同时解码给x264和lame?
怎么用啊,我用命令行直接运行没用,求高人指点!
2011年05月13日 06点05分
1
level 9
mediacoder里的mencoder是改过的,这里的pipe=后面可能是句柄或者pipe的名字。这个不能由命令行创建而是由自己写的代码创建的。
我以前发过一个NamedPipe就是做类似的事情,不过现在很少需要用这个了。
2011年05月13日 09点05分
2
level 11
那有办法实现象mediacoder这种同时解码给x264和lame来编码吗?
不然想实现单视频同时编码就得开2个解码进程,这浪费资源了啊,mediacoder这种方式很不错,一次解码,音视频都可以编码.
ls这位高人可有办法实现
2011年05月14日 03点05分
3
level 9
当然可以,但是你要自己改Mencoder代码,并且自己写前端来实现,靠脚本不可能。
2011年05月14日 05点05分
4
level 6
有必要这么麻烦吗???
Linux程序用惯了FIFO/PIPE,以文件形式展现,与微软的Named Pipe有区别。
2011年05月14日 06点05分
5
level 6
楼主的选择:
·尝试roozhou的NamedPipe
·自创一个管道工具
·修改mencoder代码
·用Linux
·用Mac
·放弃mencoder
2011年05月14日 06点05分
6
level 9
其实只是Windows的cmd没有提供创建named pipe的功能。在Windows下一样可以写一个mkfifo。
2011年05月14日 08点05分
8
level 11
明白几位热心人的意思了,直接mencoder的命令行是实现不了。
ls能发个你的namedpipe给我吗,我的邮箱newnotion#qq*com
我最终只是要实现能一次解码,音视频同时编码,不想浪费资源或时间2次解码。
还有支持-endpos 00:00:10这种参数吗?
2011年05月14日 09点05分
9
level 9
namedpipe不能帮你实现一次解码分别输出视频和音频。mencoder不修改的话是不可以同时输出两个文件的。
2011年05月14日 09点05分
10
level 9
NamedPipe让输出至文件但不支持stdout的程序可以将输出写入一个管道,并将另一个程序的stdin重定向至这个管道
2011年05月14日 20点05分
12
level 11
如果我用vb编程我该怎么实现这个过程呢
"C:\Program Files\MediaCoder\codecs\mencoder.exe" -of rawvideo -ovc raw -rawvidopts pipe=0x00000370 -ofps 15000/1001 -channels 2 -aid 1 -demuxer mkv -demuxer mkv -vf-add scale=704:396:0:0 -vf-add
unsharp=l8x8:0.2:c8x8:0.2 -sws 9 -vf-add harddup -af resample=44100:0:0,channels=2,volume=5:0 -oac pcm -pcmopts pipe=0x0000037C -mc 0 -endpos 00:00:10 "D:\input.mkv" -o NUL
这是mediacoder里的mencoder的命令行,我怎么在VB里把输出流通过管道同时送到x264和lame编码器里
下面是x264和lame的命令行
".\codecs\x264.exe" --no-progress --profile high --weightp 2 --b-pyramid strict --scenecut 40 --rc-lookahead 40 --b-adapt 2 --keyint 250 --min-keyint 25 --non-deterministic --aq-mode 1 --aq-strength 1.0 --subme 7 --me tesa --merange
16 --partitions all --8x8dct --bframes 3 --direct auto --trellis 1 --weightb --ref 2 --psy-rd 1:0 --bitrate 450 --qcomp 0.6 --sar 333:320 --threads 3 --input-res 704x396 --fps 15000/1001 --input-csp yv12 -o
"C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\mctemp5036fd9dba930da2.264" -
".\codecs\lame.exe" --cbr -b 44 -q 2 --noreplaygain --add-id3v2 --resample 44100 -r -s 44100 --quiet - "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\mctemp5036fd9dba930da2.mp3"
2011年05月27日 04点05分
13
level 9
没有mediacoder的代码,我也不知道0x00000370和0x0000037C到底是指什么东西。
2011年05月29日 03点05分
15
level 11
感觉是mediacoder作者自改了mencoder, 在mencoder里建了命名管道,就是不知道怎么调用
2011年05月30日 09点05分
16
level 9
命名管道是有名字的,而且必须是以\\.\pipe\开头,不能用句柄打开。
2011年05月30日 13点05分
17