我有一个位图目录,它们都是相同的维度.我想将这些位图转换为视频文件.我不在乎视频文件(编解码器)是wmv还是avi.我唯一的要求是我指定帧率.这不需要跨平台,仅限Windows(Vista和XP).我已经阅读了一些关于使用Windows Media SDK或DirectShow的内容,但它们都没有明确提供代码示例.
任何人都可以提供一些见解,或者一些有价值的资源可以帮助我在C#中做到这一点吗?
我的网页视图中嵌入了一个Windows Media Player:
<div id="divCourseVideo" style="width:100%;margin:0 auto;" class="container">
<OBJECT style="display:inline-block" ID="CoursePlayer" HEIGHT="400" WIDTH="400" CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" type="video/x-ms-wmv">
<param name='URL' value="@Url.Action("ShowMovie", "OLT", new { courseId = Model.ID })" />
<param name='autoStart' value="true" />
<param name='currentPosition' value="false" />
<param name='showControls' value="true" />
</OBJECT>
</div>
Run Code Online (Sandbox Code Playgroud)
ShowMovie操作从数据库中提取视频流,并将其发送到视图,其中包含:
public void ShowMovie(string courseId)
{
CourseVideo video = Repository.GetCourseVideoStream(courseId);
var bytesinfile = new byte[video.VideoStream.Length];
video.VideoStream.Read(bytesinfile, 0, (int)video.VideoStream.Length);
ControllerContext.HttpContext.Response.BinaryWrite(bytesinfile);
}
Run Code Online (Sandbox Code Playgroud)
当我使用大约10K左右的视频时,播放效果会很好.但是,如果我使用大约137K左右的文件,文件永远不会播放.它太大了吗?
当我使用F12查看网络活动时,我看到该文件正试图以text/html的形式出现.这是为什么?我也在GET函数中看到它正在中止.这是为什么?我增加了executionTimeout值无济于事.
来自napuza的信息非常好我能够获得正确的内容类型,似乎整个文件都流式传输到浏览器但它从未播放过.
我使用这两个重新缩放命令将MP4文件转换为WMV:
ffmpeg -i test.mp4 -y -vf scale=-1:360 test1.wmv
ffmpeg -i test.mp4 -y -vf scale=-1:720 test2.wmv
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
ffmpeg -g 1 -b 16000k -i test1.mp4 test1.wmv
Run Code Online (Sandbox Code Playgroud)
但是,生成的.wmv文件是" 块状和颗粒状的 ",您可以在视频屏幕截图的一小部分中看到:
这些是大小:
test.mp4 - 106 MB
test1.wmv - 6 MB
test2.wmv - 16 MB
Run Code Online (Sandbox Code Playgroud)
如何提高生成的.wmv文件的质量/大小(.wmv文件的大小无关紧要)?
是否有一个Linux(ubuntu)的命令行程序,它可以生成一个包含来自给定视频(例如WMV)的6个大写的大图像(如我所知,Windows媒体播放器经典可以做到这一点)?我需要这个是我写的一部分剧本.
我想在我的网站上播放视频.它致力于生产.在域名播放器上发布网站后不播放视频.相反,它在媒体播放器栏上显示消息,如"准备连接","正在连接..."和"就绪",显示黑屏.
这是我的视频代码.
<SPAN id="music1">
<OBJECT style="width:560px; height:300px" id=mediaPlayer
codeBase=http://activex.microsoft.com/activex/controls/mplayer/
en/nsmp2inf.cab#Version=5,1,52,701 type=application/x-oleobject
standby="Loading Microsoft Windows Media Player components..."
style="margin-left: 0px" classid=CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95>
<embed type="application/x-mplayer2" pluginspage="http://microsoft.com/windows
/mediaplayer/en/download/" bgcolor="darkblue" showcontrols="true"
showpositioncontrols="true" showstatusbar="tue" showgotobar="true"
src="videos/1.wmv" autostart="true" designtimesp="5311"
loop="true" height="600" width="470">
</OBJECT></SPAN>
Run Code Online (Sandbox Code Playgroud)
请让我知道,我做错了什么,或者它的域名问题?提前致谢
目前正在为需要播放高清WMV和H264视频的Windows .NET应用程序进行原型设计.我的测试文件是完整的1080p.
目标硬件具有弱Atom处理器但强大的NVidia 9400显卡.我知道图形是集成的,但我的理解是它们适合于视频播放.
在Windows 7上测试,如果我使用MediaElement控件在WPF中播放我的测试文件,我的CPU使用率为0.
但是,目标操作系统是Windows XP,我们可能没有.NET 3.0.因此,应用程序需要在WinForms中运行.由于各种原因,Windows Media Player ActiveX不是一个选项.所以我们正在研究DirectShow.
我使用DirectShow.NET组合了一个播放器,使用VMR9全屏播放视频.使用这种方法,我的WMV文件占用了20-30%的CPU.我不得不安装一个mp4 muxer/demuxer甚至可以播放H264文件,然后它们消耗了40-50%的CPU.
tldr:如何在WinForms中实现硬件加速的WMV和H264视频播放?
谢谢!
我已经制作了一些WMV格式的演示电影,我想嵌入我的html页面.我找到了一些代码来做到这一点,但有一件事让我很烦恼:它显示的是黑色的正面,而不是第一帧的图片.我可以在帧/电影周围放置一些描述性文字,但它并不是一个很好看的景象:所有黑色方块下面都有一个播放按钮.我需要做些什么来展示电影的第一帧?
这是我的代码:
classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95" standby="Loading Microsoft® Windows® Media Player components..." type="application/x-oleobject" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsm p2inf.cab#Version=6,4,7,1112">
<param name="filename" value="http://www.ladieda.com/mymovie.wmv">
<param name="autoStart" value="false">
<param name="showControls" value="true">
<param name="AllowChangeDisplaySize" value="true">
<param name="ClickToPlay" value="true">
<embed type="application/x-mplayer2" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/" SRC="http://www.ladieda.com/mymovie.wmv" AutoStart="false" ></embed>
</object>
Run Code Online (Sandbox Code Playgroud)
米歇尔
Ps在IE8和FF3.6中尝试过,两者都显示为黑色.
我想wmv
在浏览器中播放视频,并在页面中放置页眉和页脚.我无法播放mp4
视频,但我想玩wmv
.我谷歌它但无法找到任何东西.请指导我wmv
从HTML页面播放视频.
我有一个解决方案来显示.MP4
和.WMV
嵌入在浏览器中.它在IE和Chrome中运行良好,但在一段时间以前它停止在Chrome中工作.Chrome不会显示任何文件(mp4
或wmv
),但在IE中可以正常使用.我搜索了它,并找到了几个原因,为什么Chromes新版本无法解决这个问题,但没有解决我的问题.
有效的解决方案是<object><embed>
,但这只适用于IE现在.然后我尝试添加<video>
标签并让它mp4
在Chrome中使用,但不是wmv
.
那么,是否有人有一个解决方案来嵌入一个可以在Chrome中运行没有问题的wmv文件?
的要求是,它应该能够同时播放MP4
,并WMV
在Chrome和IE文件.
我已经使用Microsoft Expression Encoder附加了两个视频,这个东西很好用问题是,当我试图追加"wmv"以外的视频时,它给出了FileNot支持的例外情况
我在谷歌搜索但我无法找到解决方案.
private void button1_Click(object sender, EventArgs e)
{
MediaItem mediaItem1 = null;
Job job = new Job();
job.EncodeProgress += new EventHandler<EncodeProgressEventArgs>(job_EncodeProgress);
int count = 0;
//video url contains all urls of videos
foreach (string x in VideosUrls)
{
if (count == 0)
{
mediaItem1 = new MediaItem(x);
job.MediaItems.Add(mediaItem1);
}
else
{
mediaItem1.Sources.Add(new Source(x));
}
count++;
}
job.OutputDirectory = @"C://videoOutput";
job.Encode();
}
Run Code Online (Sandbox Code Playgroud)
有没有办法使用AForge.NET或Microsoft Expression Encoder,所以我可以编程方式将任何'mp4'视频转换为'wmv', …
我想使用 ffmpeg 将 wmv 文件转换为 mp4。视频细节 1920x1080,总码率 7978kbps,帧率 29 fps。图片幻灯片,无音频。它显示音频数据,但是当我创建 wmv 时没有禁用音频的选项。
ffmpeg -i input.wmv -c:v libx264 -crf 23 output.mp4
Run Code Online (Sandbox Code Playgroud)
我应该使用上面的命令还是有更好的设置来压缩视频而不损失图片质量?(因为它只是静态图像,动画只是帧之间的过渡效果)
有没有人知道是否可以使用C#从位置X上的视频(.wmv)中获取帧/图像,而无需安装DirectX并在Windows 2008上工作(我希望尽可能少地安装网络服务器).
甚至使用directx的简单解决方案也可能很好.
亨克
将.wmv文件转换为.mp4时,我使用了以下命令:
exec("ffmpeg -i file.wmv -vcodec mpeg4 -acodec libfaac -b 1200 -r 15 -s 320x240 -pix_fmt yuv420p file.mp4");
声音很好但我没有图像(使用html5时没有下载到电脑上).这是输出:
FFmpeg version 0.6.5, Copyright (c) 2000-2010 the FFmpeg developers
built on Jan 29 2012 17:52:15 with gcc 4.4.5 20110214 (Red Hat 4.4.5-6)
configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --incdir=/usr/include --disable-avisynth --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --enable-avfilter --enable-avfilter-lavf --enable-libdc1394 --enable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --enable-swscale …
Run Code Online (Sandbox Code Playgroud) wmv ×13
video ×6
c# ×4
ffmpeg ×3
html ×3
directshow ×2
embed ×2
mp4 ×2
aforge ×1
codec ×1
directx ×1
h.264 ×1
hardware ×1
html5-video ×1
linux ×1
media ×1
media-player ×1
multimedia ×1
ubuntu ×1
winforms ×1