如何使用gstreamer将网络摄像头视频保存到文件?

时间:2014-01-16 02:26:03

标签: c opencv gstreamer avi x264

I've been trying to get emgu to save same webcam video to file

问题是opencv只支持avi,avi似乎不适合像X264这样的格式。

我可以使用Gstreamer在C中为我做这个吗?

如果我也可以选择文件格式和容器类型,那将是件好事。如果我能使用像薛定谔狄拉克这样的格式会很好。

我是GStreamer的新手,所以我不太确定我是否走在正确的轨道上。

修改

我设法使用

捕获网络摄像头视频
  

gst-launch-0.10 ksvideosrc! autovideosink

现在如何将其转码为H264或dirac等格式??

修改

  

gst-launch-0.10 ksvideosrc num-buffers = 10! decodebin2!   ffmpegcolorspace! x264enc! matroskamux!文件接收   位置=视频.mkv

这似乎创建了一个文件,但VLC播放器无法读取它。

3 个答案:

答案 0 :(得分:3)

此管道从网络摄像头捕获视频,在h264中编码,最后使用flv容器将其存储在任何指定位置。

gst-launch-1.0 v4l2src ! videoconvert ! x264enc ! flvmux ! filesink location=xyz.flv

希望这有帮助

答案 1 :(得分:1)

  

gst-launch-0.10

ksvideosrc !  
decodebin2 !      
ffmpegcolorspace !
schronc ! 
matroskamux ! 
filesink location=gopro2.mkv

似乎处理dirac编码

这个

  

gst-launch-0.10 ksvideosrc num-buffers = 500! decodebin2!   ffmpegcolorspace! x264enc! mp4mux! filesink location = gopro2.mp4

处理x264

答案 2 :(得分:0)

这直接捕获来自网络摄像头的视频,并作为AVI文件写入,该文件将由VLC播放器播放。

   gst-launch v4l2src ! ffmpegcolorspace ! jpegenc ! avimux ! filesink location=output.avi

希望这有帮助!