在虚拟机 Ubuntu 18.04 下使用 KVM 新建 Ubuntu18.04 虚拟机,涉及到 Promox VE 开启嵌套虚拟化、qemu-kvm 的安装,virt-install 工具的使用等

套 娃 警 告

环境

  • Ubuntu 18.04.4 Server KVM 虚拟机
    • Proxmox VE 平台

准备

  • Ubuntu 18.04.4 CDROM 镜像
    • 下载地址
    • 需要注意镜像的选择,使用 Ubuntu 当前官网下载链接的镜像无法正常安装(原因见 虚拟机内的 KVM 虚拟化 – 第 4 步 新建二级虚拟机
  • 如果不想下载镜像,也可以使用网络镜像

参考

步骤

配置宿主机

我的宿主机使用了 Proxmox VE,有现成的脚本工具 pvetools 来开启嵌套虚拟化——此工具也支持 Debian9 以上系统,使用 modprobe 指令实现——其他发行版也可以参照

  1. 下载 pvetools
    • 执行指令
      git clone https://github.com/ivanhao/pvetools.git
  2. 运行脚本
    • 执行指令
      cd pvetools
      ./pvetools
      # 如果提示没有权限,则执行
      # chmod +x ./*.sh
  3. 选择开启嵌套虚拟化,此操作需要重启所有虚拟机

Continue reading “Ubuntu1804 虚拟机实现 KVM 嵌套虚拟化”

livego 是用 Go 编写、简单高效的直播服务器

下文将试用 livego,并使用 ffmpeg 推流 720p 的视频

环境

  • Ubuntu 18.04

准备

  • livego 二进制文件
    • GitHub 发布页
    • 下文使用版本为 0.0.11
    • 也可以使用 docker
      docker run -p 1935:1935 -p 7001:7001 -p 7002:7002 -p 8090:8090 -d gwuhaolin/livego

参考

步骤

  1. 安装 ffmpeg
    • 执行指令
      sudo apt install ffmpeg
  2. 运行 livego
    • 进入 livego 文件所在目录,运行 livego
      ./livego &

      也可以使用 docker

      docker run -p 1935:1935 -p 7001:7001 -p 7002:7002 -p 8090:8090 -d gwuhaolin/livego
    • 添加 -h 参数可以查看 livego 的参数设置
    • livego 会默认在 1935 端口监听 rtmp,7001 监听 HTTP-FLV,7002 监听 HLS,8090 监听 HTTP 管理服务
  3. 获取 channelkey
    • 访问 http://[服务器IP]:8090/control/get?room=movie 获取 channelkeydata 字段即 channelkey
    • channelkey 用于视频推流,room 参数可自行更改
  4. ffmpeg 推流
    • 执行指令
      ffmpeg -re -i YourVideo.mp4 -flags +global_header -c copy -f flv rtmp://[服务器IP]:1935/[appname]/[channelkey]

      注意:appname 默认为 live
      如果推流 mp4 类型的视频,可能需要添加参数 -flags +global_header

    • 如果提示 Key Err,则检查 channelkey 是否正确,再次访问 http://[服务器IP]:8090/control/get?room=movie 查看 channelkey
    • 4 核(2.6G) 4G 内存(DDR3 1033)推流 720p mp4 视频资源占用
  5. 观看直播
    • 使用播放器访问 rtmp://[服务器IP]:1935/[appname]/movie 观看
    • 手机浏览器可直接访问 http://[服务器IP]:7002/[appname]/movie.m3u8 使用 HLS 观看
    • 因为之前 room 参数为 movie,所以这里访问的文件(路径)名为 movie

Continue reading “livego + ffmpeg 实现视频直播”