微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

GStreamer – MJPEG流到文件

我将MJPEG流保存到文件时遇到问题.
 当我使用这样的管道传输MJPEG:

gst-launch filesrc location=thirdmovie640x360.mp4 ! decodebin2 name=dec \
    ! queue ! ffmpegcolorspace ! jpegenc ! queue ! avimux name=mux \
    ! udpsink host=192.168.0.2 port=5000

我可以使用这样的管道在我的第二台机器上播放这个流:

gst-launch -v udpsrc port=5000 ! jpegdec ! autovideosink

但是,我怎样才能将这样的MJPEG流保存到文件中(无需转码!),这些流可以在某些媒体播放器中播放?你能推荐一些管道吗?

我发现这样的管道将输出流保存为matroska文件

gst-launch udpsrc port=5000 ! multipartdemux ! jpegparse ! jpegdec \
    ! ffmpegcolorspace ! matroskamux ! filesink location=output.mkv

如何修改它以保存mp4文件?这样的管道:

gst-launch udpsrc port=5000 ! multipartdemux ! jpegparse ! jpegdec \
    ! ffmpegcolorspace ! mp4mux ! filesink location=output.mp4

不起作用.你可以帮我把它保存为mp4 contener(或avi contener)而无需转码MJPEG视频.

解决方法

MJPEG是一种编解码器,简单来说意味着有一系列jpeg图像.如果要将它们视为视频,则必须将这些jpeg存储在容器中. MP4是一个常用的容器来存储它们.

因此,您可以将jpegenc输出复用回mp4mux并将其存储在文件中.任何体面的媒体播放器都应该能够播放它.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐