使用opencv编码为flv,可以通过flash播放器播放

时间:2012-02-13 07:56:36

标签: flash opencv ffmpeg video-encoding x264

我使用1给出的配置选项使用libx264编译了ffmpeg。

这导致以下编解码器在ffmpeg中可用:

$ ffmpeg -codecs | grep "264\|flv"
ffmpeg version 0.10 Copyright (c) 2000-2012 the FFmpeg developers
built on Feb 10 2012 13:54:15 with gcc 4.6.1
configuration: --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab
libavutil      51. 34.101 / 51. 34.101
libavcodec     53. 60.100 / 53. 60.100
libavformat    53. 31.100 / 53. 31.100
libavdevice    53.  4.100 / 53.  4.100
libavfilter     2. 60.100 /  2. 60.100
libswscale      2.  1.100 /  2.  1.100
libswresample   0.  6.100 /  0.  6.100
libpostproc    52.  0.100 / 52.  0.100
DEVSD  flv             Flash Video (FLV) / Sorenson Spark / Sorenson H.263
D V D  h264            H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
D V D  h264_vdpau      H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (VDPAU acceleration)
EV    libx264         libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
EV    libx264rgb      libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 RGB

在此之后,我编译了opencv。这是部分cmake结果:

--   Video I/O:
--     DC1394 1.x:                 NO
--     DC1394 2.x:                 NO
--     FFMPEG:                     YES
--       codec:                    YES
--       format:                   YES
--       util:                     YES
--       swscale:                  YES
--       gentoo-style:             YES
--     GStreamer:                  YES
--     UniCap:                     NO
--     PvAPI:                      NO
--     V4L/V4L2:                   /1
--     Xine:                       NO

现在,使用opencv的VideoWriter,我尝试使用以下FOURCC代码编码为flv:
FLV1,X264

虽然FLV1导致视频文件无法通过Flash播放器播放,但可由vlc播放; X264完全没有结果。
这是X264的控制台输出,产生一个0字节的文件。

输出#0,flv,到'd.flv':     流#0.0:视频: [0] [0] [0] [0] / 0x0000 ,yuv420p,320x240,q = 2-31,4915 kb / s,90k tbn,24 tbc

你看到有什么不对劲或不正确吗? 感谢,

0 个答案:

没有答案