CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 8542|回复: 8

【原创分享】用CB4观看无广告的优酷视频

[复制链接]
发表于 2015-3-20 16:18:10 | 显示全部楼层 |阅读模式
本帖最后由 nabice 于 2015-3-20 16:36 编辑

系统环境 lubuntu, 硬解vlc播放器, HDMI电视
初步使用流程:在pad/手机上打开想看的优酷页面,复制URL地址,粘贴在自己搭建的网页上面,点击播放,电视开始播放视频。
改进版:          在pad/手机上打开想看的优酷页面,直接点击优酷页面的“在电视上播放”按钮, 电视开始播放视频


实现思路/方式:(代码仅供参考)
简述:
1, 修改优酷的ip, 让手机访问优酷的请求重定向到cb4, 在cb4修改优酷页面,添加”在电视上播放“的按钮。
2, nginx接收到播放请求, 发信号给后台进程, 调用flvcd.com的解析接口,还原出视频实际地址
3, 调用vlc播放视频实际地址

详细:
1,安装dnsmasq,nginx,php等
1.1 配置dnsmasq,其中添加:address=/v.youku.com/cb4_IP, 同时,手机/pad设置cb4_IP为dns服务器。
1.2 配置nginx
  1. server {
  2.             listen 80;
  3.             root /usr/share/nginx/private;
  4.             index flvcd.php;

  5.             location / {
  6.                               if (!-e $request_filename){
  7.             rewrite ^/(.*)$ /do.php last;
  8.                               }
  9.             }
  10.             location ~ \.php$ {
  11.          include fastcgi_params;
  12.                         fastcgi_pass unix:/tmp/php.socket;
  13.                         fastcgi_index flvcd.php;
  14.                         fastcgi_read_timeout 300;
  15.             }
  16. }
复制代码
1.3 编写web代码
1.3.1 /usr/share/nginx/private/do.php
  1. <?php
  2. $url = "http://".$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"];
  3. $content = file_get_contents($url);
  4. if(strpos($_SERVER["REQUEST_URI"], "v_show")|| strpos($_SERVER["REQUEST_URI"], "vplay")){
  5.         $replace_str = '<form target="flvcd" action="/" method="POST"><input type="hidden" name="url" value="'.$url.'"/><input class="button" style="width:100%;height:50px;border: 0px none;background-color:#eee;" type="submit" value="在电视上打开"/></form><iframe style="width:0;height:0;display:none" name="flvcd" id="flvcd"></iframe>';
  6.         echo preg_replace("/(<body[^>]*>)/", '$1'.$replace_str, $content);
  7. }else{
  8.         echo $content;
  9. }
  10. ?>
复制代码
1.3.2 /usr/share/nginx/private/flvcd.php
  1. <?php
  2. if($_POST["url"]){
  3.     $fd = fopen("/tmp/flvcd.url", "w");
  4.     fwrite($fd, $_POST["url"]);
  5.     fclose($fd);
  6.     exec("super kill -10 YOURMONITOR_PID");
  7. }
  8. ?>
复制代码
2  编写后台监控代码
xxxx.py
  1. #!/usr/bin/env python
  2. #-*- coding:utf-8 -*-

  3. import signal
  4. import os

  5. def playflv(signum, frame):
  6.     if os.path.exists("/tmp/flvcd.url"):
  7.                 os.system("/xxxx/flvcd ""+open("/tmp/flvcd.url").read()+"" &")

  8. signal.signal(signal.SIGUSR1, playflv)
复制代码
3.  编写解析优酷地址取实际流的代码
flvcd
  1. #!/bin/bash
  2. export DISPLAY=:0
  3. PLAYLIST="/tmp/vlcplay.$RANDOM"
  4. ps -ef| grep "vlc -f" |grep -v grep -q
  5. if [ $? -eq 0 ]; then
  6.         echo 'shutdown' | nc localhost 50022 -q 1
  7. fi
  8. if [ -z "$@" ]; then
  9.         exit
  10. fi
  11. curl 'http://www.flvcd.com/parse.php' --get \
  12.         --data-urlencode "kw=$@" \
  13.         --data-urlencode "flag=one" \
  14.         --data-urlencode "format=super" |
  15.     sed -n '/name="inf"/s/.*value="\(.*\)"\/>/\1/gp' |
  16.     sed 's/|/\n/g' > "$PLAYLIST" || exit

  17. vlc -f --no-video-title-show --play-and-exit "$PLAYLIST" -I rc --rc-host=localhost:50022
  18. rm -f "$PLAYLIST"
复制代码
4, 大功告成

回复

使用道具 举报

发表于 2015-3-20 16:59:15 | 显示全部楼层
长知识了
回复 支持 反对

使用道具 举报

发表于 2015-3-20 17:22:35 | 显示全部楼层
1.实现了吗?
2.流畅吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-20 17:38:08 | 显示全部楼层
费德勒 发表于 2015-3-20 17:22
1.实现了吗?
2.流畅吗?

实现了的, 你的v0.4一出来我就赶紧实现了
流畅
不过优酷的视频一般会分段, 切换下一段的时候没有缓冲会闪一下
回复 支持 反对

使用道具 举报

发表于 2015-3-23 14:39:06 | 显示全部楼层
不错
回复 支持 反对

使用道具 举报

发表于 2015-3-27 15:19:31 | 显示全部楼层
支持一下。感觉这个可以做点什么。 家庭服务器+ 家庭多媒体中心。
回复 支持 反对

使用道具 举报

发表于 2015-4-13 11:10:46 | 显示全部楼层
nabice 发表于 2015-3-20 17:38
实现了的, 你的v0.4一出来我就赶紧实现了
流畅
不过优酷的视频一般会分段, 切换下一段的时候没有缓冲会 ...

推荐使用mpv播放器,分段视频播放时屏幕不会闪,但会有一些停顿,感觉还行。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-19 15:15:55 | 显示全部楼层
allen 发表于 2015-4-13 11:10
推荐使用mpv播放器,分段视频播放时屏幕不会闪,但会有一些停顿,感觉还行。 ...

这个播放器在a80能硬解不? 播放1080p给力不?
回复 支持 反对

使用道具 举报

发表于 2015-4-20 16:43:17 | 显示全部楼层
nabice 发表于 2015-4-19 15:15
这个播放器在a80能硬解不? 播放1080p给力不?

我用cubieboard1放720p h264没问题,1080p应该也行。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-4-30 16:36 , Processed in 0.027494 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部