由于兄弟的项目需要对接摄像头下载某个时间段的视频,公司测试环境并未集成ffmpeg。开发老大说简单让我自己去集成配置一下就行。他的简单让兄弟研究了半天。本着吃过的苦不让兄弟们吃第二遍的想法,将我成功的步骤做一个详细梳理。
- 首先第一步,测试环境基本都是linux环境的云服务器,所以需要对应的ffmpeg版本。这里附上官网linux版本的ffmpeg稳定版下载网站
- 下载后是一个
ffmpeg-release-amd64-static.tar.xz
的压缩文件,可以直接传入你们服务器操作,也可以通过一些网上的工具解压后传上服务器直接用(由于我没有直接操作服务器的权限,我只能选择解压后通过idea直接用)由于我电脑一开始就没有那些解压软甲,所有我直接用了最笨的办法,打开了我的linux虚拟机,将文件上传上去用命令解压,得到ffmpeg的可执行二进制文件
tar -xvf /usr/local/ffmpeg-release-amd64-static.tar.xz -C /usr/local/ffmpeg --strip-components=1
-
然后将解压后的文件放入idea项目的指定文件夹下面
-
然后进行Dockerfile文件的配置就行了
FROM openjdk:8
ENV APP_DIR /app
ENV APP_LOG /log
ENV JAR_DIR /app/jars
ENV FFMPEG_DIR /usr/local/ffmpeg
ENV PATH="${FFMPEG_DIR}:$PATH"
RUN echo 'Asia/Shanghai' >/etc/timezone
ADD target/xxx-*.jar ${JAR_DIR}/app.jar
COPY sdks/hikvision/linux /usr/local/hikvision/linux
COPY sdks/ffmpeg /usr/local/ffmpeg
RUN chmod +x /usr/local/ffmpeg/ffmpeg
ADD run.sh run.sh
VOLUME ${APP_DIR} ${APP_LOG}
EXPOSE 8080
ENTRYPOINT ["sh", "/run.sh"]
- 需要注意的地方:
配置可执行文件的环境变量,由于我的可执行文件直接就是ffmpeg,没有bin文件那种,所以就按照1来配置就行了;需要指定ffmpeg可执行文件的访问权限,按照2来配置就行了(失败后的经验)
ps:下载太慢了,我直接给附件算了ヾ(=ω=)o