树莓派使用gmediarender获取投屏链接

dlna+upna的协议体系实际是将A端的媒体URL发送至B端,B端经此URL进行视屏或者音频播放。因此我们可以通过投屏的方法来接收此URL,方法如下:

1、在树莓派(本人使用Pi4)上,git clone gmediareder代码:https://github.com/hzeller/gmrender-resurrect.git

2、修改一下patch:

diff --git a/src/upnp_transport.c b/src/upnp_transport.c
index 1f7a039..96607f0 100644
--- a/src/upnp_transport.c
+++ b/src/upnp_transport.c
@@ -495,6 +495,7 @@ static void replace_current_uri_and_meta(const char *uri, const char *meta){
        const char *tracks = (uri != NULL && strlen(uri) > 0) ? "1" : "0";
        replace_var(TRANSPORT_VAR_CUR_TRACK, tracks);
        replace_var(TRANSPORT_VAR_CUR_TRACK_URI, uri);
+       printf("====uri: %s\n", uri);
        replace_var(TRANSPORT_VAR_CUR_TRACK_META, meta);
 }

3、编译、运行gmediareder。

4、从移动端发起投屏,投屏时选择gmediareder。在第3步如果通过gmediareder的参数指定了特定的--friendly-name,此处就选择对应的名称。

5、树莓派端的gmediareder将打印接收到的url:

 

此url一般是m3u8格式描述文件,依次记录了多个剪辑片段的url。如果需要下载此视频,需要先将m3u8文件下载后,再下载其中的所有片段,最后使用ffmpeg将诸文件合并为一个文件。

某些视频软件也会直接使用资源本身的url发射投屏,这种情况可直接wget获取此资源。

 

posted @ 2021-01-31 19:44  shijianyujingshen  阅读(969)  评论(0编辑  收藏  举报