使用ffmpeg的docker版实现分钟级截图

因为部分电视台的epg总是不准确,并且官方也没有提供好用的采集渠道,所以考虑按分钟截图后整理成模板。

简单截图

docker run -d \
  --name ffmpeg-screenshot \
  -v ${PWD}/screenshots:/screenshots \
  --entrypoint /bin/sh \
  jrottenberg/ffmpeg:4.4-ubuntu \
  -c "while true; do \
    ffmpeg -y -i 'http://124.232.233.6:6060/000000001001/201600020002/index.m3u8' \
           -vf fps=1/60 -frames:v 1 \
           /screenshots/snapshot_\$(date +\%Y%m%d_\%H\%M\%S).jpg; \
    sleep 60; \
  done"

但是上面的存在时区问题,所以先自己构建一个镜像加上时区

Dockerfile内容如下

FROM jrottenberg/ffmpeg:4.4-ubuntu

RUN apt-get update && \
    apt-get install -y tzdata && \
    ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    dpkg-reconfigure -f noninteractive tzdata

打包命令

docker build -t my-ffmpeg .

 

使用新镜像截图

docker run -d \
  --name ffmpeg-screenshot \
  -v ${PWD}/screenshots:/screenshots \
  --entrypoint /bin/sh \
  my-ffmpeg \
  -c "while true; do \
    ffmpeg -y -i 'http://124.232.233.6:6060/000000001001/201600020002/index.m3u8' \
           -vf fps=1/60 -frames:v 1 \
           /screenshots/snapshot_\$(date +\%Y%m%d_\%H\%M\%S).jpg; \
    sleep 60; \
  done"

 

 

 

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注