关于Media Encoder 9界面与命令行区别的问题

phyerbarte 2008-10-25 09:14:26
公司需要做一套视频切割软件,为了能高速切割,决定使用asfbin来切割,由于输入的wmv格式多种来源,导致直接使用asfcut或asfbin切割不准确,于是我们想出一个办法,将所有视频通过windows media encoder 9进行再次编码,然后再用asfbin进行切割,但是问题出来了,如果我使用encoder的界面方式,选择视频音频全高质量VBR100(文件方式保存),其他参数全部使用默认,转换出来的视频能够被非常精确的切割,但是一旦使用命令行方式,转换出来的wmv切割后总会有2到3秒的误差,比如我要切2分04秒到4分05秒的内容,但是切出来的实际内容是2分06到4分07之类,有明显的误差,我查询了命令行的说明文档,但是看不出还有什么地方有问题,还请这里的前辈指教,以下是我使用的命令行指令


cscript.exe C:\Encoder\wmcmd.vbs -input "D:\@F-202@127578.wmv" -output "C:\@F-202@127578-pro2.wmv" -v_mode 2 -v_quality 100 -v_framerate 29.97 -v_bitrate 100000 -a_mode 2 -v_width 720 -v_height 576 -v_keydist 2 -v_peakbitrate 0 -v_peakbuffer 0 -a_codec WMA9LSL -a_setting Q100_44_2_16

另外一个是我在使用界面后保存的视频转换会话文件的内容


<?xml version="1.0"?>

<WMEncoder major_version="9"
minor_version="0"
Name="WMEncoder14920"
SynchroniesOperation="0" >
<Description />
<SourceGroups >
<SourceGroup Name="转换" >
<Source Type="WMENC_AUDIO"
Scheme="file"
InputSource="D:\@F-202@127578.wmv" >
<UserData >
</UserData>

</Source>

<Source Type="WMENC_VIDEO"
Scheme="file"
InputSource="D:\@F-202@127578.wmv" >
<UserData >
</UserData>

</Source>

<EncoderProfile id="质量无损音频(VBR 100) / 最高质量视频(VBR 100)" />
<UserData >
</UserData>

</SourceGroup>

</SourceGroups>

<File LocalFileName="D:\@F-202@127578-ppe.wmv" />
<WMEncoder_Profile id="质量无损音频(VBR 100) / 最高质量视频(VBR 100)" >
<![CDATA[ <profile version="589824"
storageformat="1"
name="质量无损音频(VBR 100) / 最高质量视频(VBR 100)"
description="">
<streamconfig majortype="{73647561-0000-0010-8000-00AA00389B71}"
streamnumber="1"
streamname="Audio Stream"
inputname="Audio804"
bitrate="128016"
bufferwindow="-1"
reliabletransport="0"
decodercomplexity=""
rfc1766langid="zh-cn"
vbrenabled="1"
vbrquality="100"
bitratemax="0"
bufferwindowmax="0">
<wmmediatype subtype="{00000163-0000-0010-8000-00AA00389B71}"
bfixedsizesamples="1"
btemporalcompression="0"
lsamplesize="13375">
<waveformatex wFormatTag="355"
nChannels="2"
nSamplesPerSec="44100"
nAvgBytesPerSec="2147483492"
nBlockAlign="13375"
wBitsPerSample="16"
codecdata="1000030000000000000000000000A1010000"/>
</wmmediatype>
</streamconfig>
<streamconfig majortype="{73646976-0000-0010-8000-00AA00389B71}"
streamnumber="2"
streamname="Video Stream"
inputname="Video804"
bitrate="100000"
bufferwindow="-1"
reliabletransport="0"
decodercomplexity=""
rfc1766langid="zh-cn"
vbrenabled="1"
vbrquality="100"
bitratemax="0"
bufferwindowmax="0">
<videomediaprops maxkeyframespacing="20000000"
quality="0"/>
<wmmediatype subtype="{33564D57-0000-0010-8000-00AA00389B71}"
bfixedsizesamples="0"
btemporalcompression="1"
lsamplesize="0">
<videoinfoheader dwbitrate="100000"
dwbiterrorrate="0"
avgtimeperframe="333667">
<rcsource left="0"
top="0"
right="0"
bottom="0"/>
<rctarget left="0"
top="0"
right="0"
bottom="0"/>
<bitmapinfoheader biwidth="0"
biheight="0"
biplanes="1"
bibitcount="24"
bicompression="WMV3"
bisizeimage="0"
bixpelspermeter="0"
biypelspermeter="0"
biclrused="0"
biclrimportant="0"/>
</videoinfoheader>
</wmmediatype>
</streamconfig>
<streamprioritization>
<stream number="1" mandatory="0"/>
<stream number="2" mandatory="0"/>
</streamprioritization>
</profile>
]]>
</WMEncoder_Profile>

<UserData >
<WMENC_LONG Name="Encoding\Dest" Value="6" />
<WMENC_STRING Name="Encoding\Audio0" Value="{FD8FDDF1-291C-4618-BED2-736F9411365A}" />
<WMENC_STRING Name="Encoding\Video0" Value="{D8776CD5-F0A3-497E-AEE5-9F9503B9246C}" />
</UserData>

</WMEncoder>


真的是奇怪了,为什么界面中的转换结果会与命令行不一样?到底还差什么参数呢?请各位指教啊。
...全文
222 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
phyerbarte 2008-10-29
  • 打赏
  • 举报
回复
最终结果是,参数还不够,自己找到原因了,结帖。

2,554

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧