Video.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace Content\V1;
  3. use Dever;
  4. class Video
  5. {
  6. # 从腾讯视频中解析mp4
  7. public function html_api($link)
  8. {
  9. $link = $this->mp4_api($link);
  10. $html = '<video controls="controls" width="200" src="'.$link.'">您的浏览器不支持视频播放</video>';
  11. return $html;
  12. }
  13. # 从腾讯视频中解析mp4
  14. public function mp4_api($link)
  15. {
  16. if (!$link) {
  17. $link = 'https://v.qq.com/x/page/j0515xuxz37.html';
  18. }
  19. $temp = explode('/page/', $link);
  20. $temp = explode('.html', $temp[1]);
  21. $key = $temp[0];
  22. //$key = str_replace(array('https://v.qq.com/x/page/', '.html'), '', $link);
  23. $api = 'http://vv.video.qq.com/getinfo?vids='.$key.'&platform=101001&charge=0&otype=json';
  24. $data = Dever::curl($api);
  25. $data = json_decode(str_replace(array('QZOutputJson=', ';'), '', $data), true);
  26. //print_r($data);die;
  27. $data = $data['vl']['vi'][0];
  28. $urls = $data['ul']['ui'];
  29. foreach ($urls as $k => $v) {
  30. if (strstr($v['url'], 'vhot2.qqvideo.tc.qq.com')) {
  31. $url = $v['url'];
  32. }
  33. }
  34. if (empty($url)) {
  35. return $this->mp4_api($link);
  36. }
  37. $link = $url . $data['fn'] . '?vkey=' . $data['fvkey'];
  38. return $link;
  39. }
  40. //docker run opencoconut/ffmpeg -i http://125.39.7.23/vhot2.qqvideo.tc.qq.com/ABeZbme1SX8-pYwYN_hPTYHdjJsGJiLeTu6P2YfrUsto/j0515xuxz37.m701.mp4?vkey=3EA0D99319B7D7F439F387E804AE9C87C631D0AA8EEE639266754BF3CE14AD55F79CD0239AF29518DBAF415259976CE4767E1615F80CA41B1B12F67067E8A480A95EFD4A6B06767092DFA7252AE16CEE6AC09EBEE4525F423B840B128A7F6522902C1FA8BFC48D0D -f webm -c:v libvpx -c:a libvorbis - > test.webm
  41. }