我们在Linux应用程序中使用libvlc来播放来自IP摄像机的RTP MJPEG流。我们希望有两个libvlc_media_players播放视频,一个在GtkDrawingArea中播放完整的图像,另一个在另一个GtkDrawingArea中播放一个裁剪过的视频部分(伪缩放)。似乎无论哪个实例先连接,都会阻止第二个实例绑定到端口。
我们需要一个方法将流量复制到两个端口,可能是或任何其他建议?
你至少有两种方法来实现你想要的东西,这取决于你需要的确切结果。
虽然你只能调用 libvlc_new
一次,所以只有1 libvlc
在你的应用程序中,你可以在你的应用程序中创建任意多的媒体播放器,你可以在你的应用程序中创建任意多的媒体播放器。libvlc
. 他们将是独立的,虽然,所以如果你需要精确的同步,这是不是你想使用。
另一种方式是复制视频输出,例如使用
Clone video filter (clone)
Duplicate your video to multiple windows and/or video output modules
--clone-count=<integer> Number of clones
Number of video windows in which to clone the video.
--clone-vout-list=<string> Video output modules
You can use specific video output modules for the clones. Use a
comma-separated list of modules.
https:/wiki.videolan.orgVLC_command-line_help。
与 libvlc_media_add_option
(取代 --
与 :
当使用该函数时)。)
您也可以使用 --sout
与 #duplicate
也是。https:/wiki.videolan.orgDocumentation:Streaming_HowToCommand_Line_Examples。
根据你选择的方式,VLC可能会自己创建一个新的窗口,你可能必须抓取并纳入你的应用程序中。