我有保存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视频.
据说mmap()将文件映射到内存,并且它花费在调用进程的虚拟地址空间内存中.它是否真的将数据复制到内存中,或者数据是否仍存在于磁盘中?是mmap()不是更快read()?
我目前正在研究嵌入式 linux 帧缓冲区。我知道如何通过键入以下内容来显示系统的可用分辨率:
cat /sys/class/graphics/fb0/modes
Run Code Online (Sandbox Code Playgroud)
这给了我一个决议列表,例如:
U:720x576p-50
D:1920x1080p-50
D:1280x720p-50
D:1920x1080i-60
D:1920x1080i-50
U:1440x900p-60
S:1280x1024p-60
V:1024x768p-60
V:800x600p-60
V:640x480p-60
D:1280x720p-60
D:1920x1080p-60
Run Code Online (Sandbox Code Playgroud)
我想知道每行的第一个字符是什么意思(S、U、V 或 D)。是否有列出所有可能字符的标准/文档?