如何创build一个webmvideo文件?

在浏览Web项目后,我看不到有什么方法可以生成webmvideo。 我看到Windows和Quicktime的驱动程序,但没有证据表明最常用的ffmpeg工具正在被支持。

有没有任何开源的转换器,生产webm?

谢谢。

您可以使用ffmpeg转换为webm。 确保使用--enable-libvpx--enable-libvorbis标志进行编译 (请参阅FFmpeg编译指南 ),或访问FFmpeg下载页面以获取包含支持的构build的链接。 之后,您可以使用以下命令(我使用input.flv作为示例input文件):

 ffmpeg -i input.flv -vcodec libvpx -acodec libvorbis output.webm 

有关更多信息,请参阅FFmpeg vpx(WebM)编码指南 。

我最近设置了这个,但是这有点痛苦。 这是我必须做的:

首先,从源代码构buildffmpeg以包含libvpx驱动程序(即使您使用的是带有它的版本,也需要最新的(本月)stream式传输webm,因为它们只是添加了包含全局标头的function)。 我在Ubuntu服务器和桌面上做了​​这个, 本指南向我展示了如何在这里find其他操作系统的说明。

一旦你已经得到适当版本的ffmpeg / ffserver,你可以设置它们来进行stream式传输,在我的情况下,这是按如下方式完成的。

在video捕获设备上:

 ffmpeg -f video4linux2 -standard ntsc -i /dev/video0 http://<server_ip>:8090/0.ffm 
  • “-f video4linux2 -standard ntsc -i / dev / video0”部分可能会根据您的input源(我的video采集卡)而改变。

相关的ffserver.conf摘录:

 Port 8090 #BindAddress <server_ip> MaxHTTPConnections 2000 MAXClients 100 MaxBandwidth 1000000 CustomLog /var/log/ffserver NoDaemon <Feed 0.ffm> File /tmp/0.ffm FileMaxSize 5M ACL allow <feeder_ip> </Feed> <Feed 0_webm.ffm> File /tmp/0_webm.ffm FileMaxSize 5M ACL allow localhost </Feed> <Stream 0.mpg> Feed 0.ffm Format mpeg1video NoAudio VideoFrameRate 25 VideoBitRate 256 VideoSize cif VideoBufferSize 40 VideoGopSize 12 </Stream> <Stream 0.webm> Feed 0_webm.ffm Format webm NoAudio VideoCodec libvpx VideoSize 320x240 VideoFrameRate 24 AVOptionVideo flags +global_header AVOptionVideo cpu-used 0 AVOptionVideo qmin 1 AVOptionVideo qmax 31 AVOptionVideo quality good PreRoll 0 StartSendOnKey VideoBitRate 500K </Stream> <Stream index.html> Format status ACL allow <client_low_ip> <client_high_ip> </Stream> 
  • 注意,这是为在feeder_ip上执行上述ffmpeg命令的服务器configuration的,而在server_ip上通过client_high_ip从server_ip_server_ip(在下面继续)处理mpeg到webm会话时,服务器被configuration为client_low_ip。

这个ffmpeg命令在以前称为server_ip的机器上执行(它处理实际的mpeg – > webm转换,并将其反馈到另一个feed中的ffserver):

 ffmpeg -i http://<server_ip>:8090/0.mpg -vcodec libvpx http://localhost:8090/0_webm.ffm 

一旦这些都已经启动(首先是ffserver,然后是feeder_ip ffmpeg进程,然后是server_ip ffmpeg进程),您应该能够访问http://:8090 / 0.webm上的实时stream,并检查http ://:8090 /

希望这可以帮助。

对于Linux:可用于Linux的vp8和vp9编解码器的开源软件是Arista for gnome桌面。 Google:Arista转码器

对于Windows和Linux: Mirovideo转换器也是一个非常stream畅的GUI免费和开源。 你可以看看:Google:mirovideoconverter

FFMPEG是一个命令行工具,我发现它是跟上webmd项目最新的。 不要忘记查看webmproject站点 https://sites.google.com/a/webmproject.org/wiki/ffmpeg 提供vp8编码选项 。 您还应该查看“ VPX编码指南”: https //trac.ffmpeg.org/wiki/vpxEncodingGuide

另一篇文章提到vpxenc.exe但是,vpxenc.exe需要通过源代码进行编译。

FFMEG示例用途:将{NPUT}和{OUTPUT}replace为文件位置。 在Windows 7上,我必须使用电源shell(开始>附件> Windows Power Shell> Power Shell),并提供ffmpeg,input和输出的完整位置。 注意参数-vcodec libvpx默认使用VP8。 使用VP9replace为-vcodec libvpx-vp9

WedmbSD

 ffmeg.exe -i {INPUT} -s hd480 -vcodec libvpx -g 120 -lag-in-frames 16 -deadline good -cpu-used 0 -vprofile 0 -qmax 63 -qmin 0 -b:v 768k -acodec libvorbis -ab 112k -ar 44100 -f webm {OUTPUT} 

MiroVideoConverter是一个很好的跨平台和开源的ffmpeg包装器,特别是支持转换到WebM。

FFmpeg的。 MP4到WebM。 有lipync和高品质

 $ ffmpeg -i input.mp4 -b:v 1M -q:v 10 -vcodec libvpx -acodec libvorbis output.webm ffmpeg version 2.8.6-1ubuntu2 Copyright (c) 2000-2016 the FFmpeg developers built with gcc 5.3.1 (Ubuntu 5.3.1-11ubuntu1) 20160311 configuration: --prefix=/usr --extra-version=1ubuntu2 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv libavutil 54. 31.100 / 54. 31.100 libavcodec 56. 60.100 / 56. 60.100 libavformat 56. 40.101 / 56. 40.101 libavdevice 56. 4.100 / 56. 4.100 libavfilter 5. 40.101 / 5. 40.101 libavresample 2. 1. 0 / 2. 1. 0 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 2.101 / 1. 2.101 libpostproc 53. 3.100 / 53. 3.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'SPBFRE_01.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp42mp41 creation_time : 2015-05-29 14:49:20 Duration: 00:01:41.61, start: 0.000000, bitrate: 9452 kb/s Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 9132 kb/s, 50 fps, 50 tbr, 50k tbn, 100 tbc (default) Metadata: creation_time : 2015-05-29 14:49:20 handler_name : ?Mainconcept Video Media Handler encoder : AVC Coding Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 317 kb/s (default) Metadata: creation_time : 2015-05-29 14:49:20 handler_name : #Mainconcept MP4 Sound Media Handler File 'output.webm' already exists. Overwrite ? [y/N] y [libvpx @ 0x132af40] v1.5.0 Output #0, webm, to 'output.webm': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp42mp41 encoder : Lavf56.40.101 Stream #0:0(eng): Video: vp8 (libvpx), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 1000 kb/s, 50 fps, 1k tbn, 50 tbc (default) Metadata: creation_time : 2015-05-29 14:49:20 handler_name : ?Mainconcept Video Media Handler encoder : Lavc56.60.100 libvpx Stream #0:1(eng): Audio: vorbis (libvorbis), 44100 Hz, stereo, fltp (default) Metadata: creation_time : 2015-05-29 14:49:20 handler_name : #Mainconcept MP4 Sound Media Handler encoder : Lavc56.60.100 libvorbis Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> vp8 (libvpx)) Stream #0:1 -> #0:1 (aac (native) -> vorbis (libvorbis)) Press [q] to stop, [?] for help frame= 755 fps= 10 q=0.0 size= 1987kB time=00:00:15.12 bitrate=1076.5kbits/s 

我不确定我的FFMPEG副本是否支持WebM,所以我首先使用FFMPEG将我的MPEG4video转换为原始video。

然后,我使用随WebM项目SDK提供的vpxenc.exe将其转换为WebM。

链接到SDK下载: http : //code.google.com/p/webm/downloads/list

下载,解压并查看“bin”文件夹。 那里有一些示例应用程序。 还提供了解码器。

我用来将原始video转换为WebM的命令:

 vpxenc.exe -w 720 -h 480 --rt -o v1.webm v1.yuv 

HTH

avconv

 avconv -i inmovie.mp4 -flags global_header -strict experimental outmovie.webm 

ffmpeg -i input.mp4 -c:v libvpx -crf 10 -b:v 1M -c:a libvorbis output.webm

默认情况下,CRF值可以是4-63,而10是一个很好的起点。 数值越低,质量越好。