GStreamer - MJPEG 流到文件

标签 gstreamer pipeline 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 视频吗?

最佳答案

我解决了我的问题。这是我正在寻找的管道:

服务器

gst-launch filesrc location=thirdmovie640x360.mp4 ! decodebin2 name=dec
! queue ! ffmpegcolorspace ! jpegenc ! queue ! multipartmux
! udpsink host=192.168.0.4 port=5000

客户
gst-launch udpsrc port=5000 ! multipartdemux ! image/jpeg, framerate=25/1 
! jpegparse ! jpegdec ! ffmpegcolorspace ! jpegenc
! avimux ! filesink location=output.avi

关于GStreamer - MJPEG 流到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12712931/

相关文章:

c++ - 如何将 MJPEG 解码为原始 RGB(或 YUV)数据

opencv - 从特定链接读取流

http - 使用 C 中的简单 tcp 服务器在 linux 上通过 http 发送 MJPEG 流

video - 使用 gstreamer 将 h264 流包装成 mp4

java - x64 Windows 7 版本的 GStreamer

api - 从 GitLab 运行程序/管道中创建版本

python - One-Hot 编码训练和测试数据时形状不匹配。将 get_dummies 与管道一起使用时,Train_Data 比 Test_data 具有更多的虚拟列

c++ - 为什么在使用 Qt Creator 用 C 语言编译代码时出现错误,但使用 make 文件可以轻松做到这一点?

c++ - 如何从 XPCOM 对象连接到 Songbird 插件中的 GStreamer 插件?

mips - mips 分支延迟时隙是否通过连续的分支传播?