本文同步自(最佳显示效果请点击):https://zohead.com/archives/raspberry-pi-sopcast/
Sopcast 是一种国外比较受欢迎的 P2P 流媒体直播软件,可以运行在 Windows、Linux、Android 等平台,近日想在 Raspberry Pi 树莓派板子上看 Sopcast 直播视频看球赛,经过搜索之后终于找到一种曲线解决的办法。
目前树莓派上的 Android 还基本处于不能用的阶段,Raspberry Pi 由于是 ARM 架构的嵌入式板子,也无法运行 x86 版本的 Sopcast Linux 客户端程序,因此只能另想办法。
这里就要用到 QEMU 这个著名的虚拟机的 user mode 用户模式了,而通常使用的虚拟机都是 system mode 系统模式。通过使用 QEMU 的用户模式,可以在当前的系统环境下直接模拟运行其它架构下的程序,因此想到在 Raspberry Pi 当前的 armhf 环境下使用 qemu-i386 在用户模式下运行 x86 架构下的 Sopcast Linux 客户端程序。
有关 QEMU 用户模式的介绍请参考这里:
http://wiki.debian.org/QemuUserEmulation
你如果有兴趣的话可以自己下载 QEMU 的源代码并在 Raspberry Pi 下编译,这里为了省事我就直接用网上已经编译好的了,可以从我共享的微云网盘里下载:
http://share.weiyun.com/cfeea0d9b415d625309d1bb420a4150b
解压拷贝到 Raspberry Pi 系统中,假设为 /home/sopcast 目录中,其中有 sp-sc-auth 这个 x86 系统下的 Sopcast Linux 客户端程序,然后在 /usr/bin 目录下产生一个名为 sp-sc-auth 的脚本文件,内容如下(路径请自行修改):
#!/bin/sh cd /home/sopcast exec ./qemu-i386 lib/ld-linux.so.2 --library-path lib ./sp-sc-auth $@
此脚本中使用 exec 的目的是方便后面的 Xsopcast XBMC 插件在停止播放节目时可以正常结束掉 sp-sc-auth 进程(保持进程 PID 不变这样 XBMC 系统可以跟踪)。
然后在 Raspberry Pi 系统中运行 sp-sc-auth 命令测试是否可以正常连接 Sopcast 服务器并打开节目,这里以 CCTV-13 频道地址为例:
sp-sc-auth sop://124.232.150.188:3912/9767 9000 9001
稍微片刻,如果连接正常的话就会不断产生数据输出。
下面就是使用的问题了,你如果想在 Raspberry Pi 的 X 界面下使用的话,可以安装 Linux 下的 Sopcast Player 软件来播放,这是一个 X 环境下的 Sopcast 的前端 GUI 界面:
http://code.google.com/p/sopcast-player/
如果你是和我一样用的 XBian 之类的 XBMC 多媒体系统,那可以直接安装 XSopcast 这一 XBMC 插件,让这个插件自动来运行 sp-sc-auth 客户端程序,有关此插件的介绍请参考这里:
http://forum.xbmc.org/showthread.php?tid=129996
安装好此插件之后,首先安装上面的步骤将 sp-sc-auth 脚本放到 /usr/bin 目录下,然后再进入 XBMC 系统的 视频 - 扩展插件 - XSopcast,就可以看到 SopCast 节目列表了,点击一个节目就可以观看了。如果没有做 sp-sc-auth 脚本操作,第一次启动 XSopCast 插件的时候,插件会自动从网络下载 sp-sc-auth 程序,但下载的 Linux 客户端程序是 x86 版本不能运行的。
细心的朋友如果在播放的时候在 Raspberry Pi Linux 后台运行 ps ax 命令就可以看到 qemu-i386 启动的 sp-sc-auth 进程了,停止播放直播视频时此进程就会自动被结束掉。