乐趣区

关于rtmp:流媒体H265使用RTMP推流的完整过程记录

次要包含如下三个局部装置:

1. Nginx-rtmp 模块:PingOS 装置

应用 docker 进行装置:reference

# 拉取 dockerfile
git clone https://github.com/pingostack/pingos.git
cd docker
# 应用 shell 脚本产生 docker 容器(默认为 docker_pingos_1)chmod +x run.sh
./run.sh build。/run.sh up -d

2. 本地装置 H264 H265

依照 ffmpeg 官网指南装置 H264 H265

# 装置须要的库
sudo apt-get update -qq && sudo apt-get -y install \
  autoconf \
  automake \
  build-essential \
  cmake \
  git-core \
  libass-dev \
  libfreetype6-dev \
  libgnutls28-dev \
  libsdl2-dev \
  libtool \
  libva-dev \
  libvdpau-dev \
  libvorbis-dev \
  libxcb1-dev \
  libxcb-shm0-dev \
  libxcb-xfixes0-dev \
  meson \
  ninja-build \
  pkg-config \
  texinfo \
  wget \
  yasm \
  zlib1g-dev

# 装置 h264 h265
sudo apt-get install libx264-dev
sudo apt-get install libx265-dev libnuma-dev

3. 本地装置 ffmpeg

谬误状况参考 reference

## 装置金山云的 ffmpeg 3.4 版本
git clone https://github.com/ksvc/FFmpeg.git
cd FFmpeg
git reset --hard origin/release/3.4
# 编译
./configure --enable-static --enable-pic \
        --disable-encoders --enable-encoder=aac --enable-encoder=libx264 --enable-gpl --enable-libx264 --enable-encoder=libx265  --enable-libx265 \
        --disable-decoders --enable-decoder=aac --enable-decoder=h264 --enable-decoder=hevc  \
        --disable-demuxers --enable-demuxer=aac --enable-demuxer=mov --enable-demuxer=mpegts --enable-demuxer=flv --enable-demuxer=h264 --enable-demuxer=hevc --enable-demuxer=hls  \
        --disable-muxers --enable-muxer=h264  --enable-muxer=flv --enable-muxer=f4v  --enable-muxer=mp4 \
        --disable-doc --extra-cflags="-fno-stack-check"
make -j8

### libavcodec/libx264.c:282:9: error:‘x264_bit_depth’undeclared (first use in this function)
### 会呈现相似报错,须要批改 libavcodec/libx264.c
### 这里用 vim 指令讲所有 x264_bit_depth 替换成 X264_BIT_DEPTH
vim ./libavcodec/libx264.c
:%s/x264_bit_depth/X264_BIT_DEPTH/g
### 再回到编译局部,从新 configure 和 make

4. 测试

cd FFmpeg
# 推流
./ffmpeg -re -i ./video.mp4 -c:a copy -c:v libx265 -f flv rtmp://127.0.0.1/live/h265
# 接流
./ffplay rtmp://127.0.0.1/live/h265

如果一切顺利,那么你将在屏幕上看到你推流的本地视频!

退出移动版