XMe*_*oIT 4 pipeline mjpeg gstreamer
我有保存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
Run Code Online (Sandbox Code Playgroud)
我可以使用这样的管道在我的第二台机器上播放这个流:
gst-launch -v udpsrc port=5000 ! jpegdec ! autovideosink
Run Code Online (Sandbox Code Playgroud)
但是,如何将这样的MJPEG流保存到文件(不转码!),这将能够在某些媒体播放器中播放?你能推荐一些管道吗?
我发现这样的管道将输出流保存为matroska文件:
gst-launch udpsrc port=5000 ! multipartdemux ! jpegparse ! jpegdec \
! ffmpegcolorspace ! matroskamux ! filesink location=output.mkv
Run Code Online (Sandbox Code Playgroud)
如何修改它以保存mp4文件?这样的管道:
gst-launch udpsrc port=5000 ! multipartdemux ! jpegparse ! jpegdec \
! ffmpegcolorspace ! mp4mux ! filesink location=output.mp4
Run Code Online (Sandbox Code Playgroud)
不起作用.你可以帮我把它保存为mp4 contener(或avi contener)而无需转码MJPEG视频.
我解决了我的问题.这是我正在寻找的piplines:
服务器
gst-launch filesrc location=thirdmovie640x360.mp4 ! decodebin2 name=dec
! queue ! ffmpegcolorspace ! jpegenc ! queue ! multipartmux
! udpsink host=192.168.0.4 port=5000
Run Code Online (Sandbox Code Playgroud)
客户
gst-launch udpsrc port=5000 ! multipartdemux ! image/jpeg, framerate=25/1
! jpegparse ! jpegdec ! ffmpegcolorspace ! jpegenc
! avimux ! filesink location=output.avi
Run Code Online (Sandbox Code Playgroud)
MJPEG 是一种编解码器,简单来说意味着存在一系列 jpeg 图像。如果您想将这些 jpeg 作为视频观看,则必须将它们存储在容器中。MP4 是存储它们的常见容器。
因此,您可以将 jpegenc 输出复用回 mp4mux 并将其存储在文件中。任何像样的媒体播放器都应该能够播放它。
| 归档时间: |
|
| 查看次数: |
15309 次 |
| 最近记录: |