Docker基础知识与用法可以参考着一篇:《Docker入门》

1. 安装ffmpeg

在 hub.docker.com 上面搜索ffmpeg就可以了,我选的是下载量最大的jrottenberg/ffmpeg,然后通过命令行方式安装。

PS C:\Users\MyName> docker pull jrottenberg/ffmpeg

2. 运行docker容器

PS C:\Users\MyName> docker run -it --name app_ffmpeg -p 8080:8080 -v F:/Downloads/ffmpeg/:/mnt/app/ --entrypoint='bash' jrottenberg/ffmpeg

然后在宿主机上检查容器是否已经正常运行

PS C:\Users\MyName> docker ps
CONTAINER ID   IMAGE                COMMAND   CREATED          STATUS          PORTS                    NAMES
7ba2af75f183   jrottenberg/ffmpeg   "bash"    10 minutes ago   Up 10 minutes   0.0.0.0:8080->8080/tcp   app_ffmpeg

3. 将需要处理的视频文件传输到容器中

PS C:\Users\MyName> docker cp F:\Downloads\test_video.mp4 app_ffmpeg:/tmp/workdir/

4. 在docker中使用ffmpeg命令进行文件分割

此处是从视频文件37:50处进行分割的。

# ffmpeg -ss 00:00:00 -t 00:37:50 -i test_video.mp4 -vcodec copy -acodec copy test_video_1.mp4
# ffmpeg -ss 00:37:50 -t 01:17:29 -i test_video.mp4 -vcodec copy -acodec copy test_video_2.mp4

5. 将分割好的文件从容器拷贝回宿主机

PS C:\Users\MyName> docker cp app_ffmpeg:/tmp/workdir/test_video_1.mp4 F:\Downloads
PS C:\Users\MyName> docker cp app_ffmpeg:/tmp/workdir/test_video_2.mp4 F:\Downloads

[注] ffmpeg 常用命令

1. 视频分割
ffmpeg -ss 00:00:00 -t 00:00:30 -i test.mp4 -vcodec copy -acodec copy output.mp4
2. 视频合并:

先将需要合并的文件名依次存入文件列表文件list.txt中:

file split1.mp4
file split2.mp4

然后执行合并命令

ffmpeg -f concat -i list.txt -c copy concat.mp4
3. 更多:
// 去掉视频中的音频
ffmpeg -i input.mp4 -vcodec copy -an output.mp4
// -an: 去掉音频;-vcodec:视频选项,一般后面加copy表示拷贝// 提取视频中的音频
ffmpeg -i input.mp4 -acodec copy -vn output.mp3
// -vn: 去掉视频;-acodec: 音频选项, 一般后面加copy表示拷贝// 音视频合成
ffmpeg -y –i input.mp4 –i input.mp3 –vcodec copy –acodec copy output.mp4
// -y 覆盖输出文件//剪切视频
ffmpeg -ss 0:1:30 -t 0:0:20 -i input.mp4 -vcodec copy -acodec copy output.mp4
// -ss 开始时间; -t 持续时间// 视频截图
ffmpeg –i test.mp4 –f image2 -t 0.001 -s 320x240 image-%3d.jpg
// -s 设置分辨率; -f 强迫采用格式fmt;// 视频分解为图片
ffmpeg –i test.mp4 –r 1 –f image2 image-%3d.jpg
// -r 指定截屏频率// 将图片合成视频
ffmpeg -f image2 -i image%d.jpg output.mp4//视频拼接
ffmpeg -f concat -i filelist.txt -c copy output.mp4// 将视频转为gif
ffmpeg -i input.mp4 -ss 0:0:30 -t 10 -s 320x240 -pix_fmt rgb24 output.gif
// -pix_fmt 指定编码// 将视频前30帧转为gif
ffmpeg -i input.mp4 -vframes 30 -f gif output.gif// 旋转视频
ffmpeg -i input.mp4 -vf rotate=PI/2 output.mp4// 缩放视频
ffmpeg -i input.mp4 -vf scale=iw/2:-1 output.mp4
// iw 是输入的宽度, iw/2就是一半;-1 为保持宽高比//视频变速
ffmpeg -i input.mp4 -filter:v setpts=0.5*PTS output.mp4//音频变速
ffmpeg -i input.mp3 -filter:a atempo=2.0 output.mp3//音视频同时变速,但是音视频为互倒关系
ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mp4// 视频添加水印
ffmpeg -i input.mp4 -i logo.jpg -filter_complex [0:v][1:v]overlay=main_w-overlay_w-10:main_h-overlay_h-10[out] -map [out] -map 0:a -codec:a copy output.mp4
// main_w-overlay_w-10 视频的宽度-水印的宽度-水印边距;// 截取视频局部
ffmpeg -i in.mp4 -filter:v "crop=out_w:out_h:x:y" out.mp4
// 截取部分视频,从[80,60]的位置开始,截取宽200,高100的视频
ffmpeg -i in.mp4 -filter:v "crop=80:60:200:100" -c:a copy out.mp4
// 截取右下角的四分之一
ffmpeg -i in.mp4 -filter:v "crop=in_w/2:in_h/2:in_w/2:in_h/2" -c:a copy out.mp4
// 截去底部40像素高度
ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4

通过Docker部署的ffmpeg进行视频分割与合并相关推荐

  1. ffmpeg 将视频分割为小段

    目录 1. 先看一下分割结果 2. MAC安装ffmpeg 3. ffmpeg视频分割命令介绍 4.编写java程序 (1). 调用: (2). 视频分割的java工具类 5.参考: 1. 先看一下分 ...

  2. 利用FFMPEG进行视频分割

    转载地址:http://blog.csdn.net/bikeytang/article/details/51491139 利用FFMPEG命令进行文件分割 ffmpeg -ss 00:00:00 -i ...

  3. FFMPEG MKV转换为MP4以及视频分割和合并

    mkv转换为mp4 ffmpeg -i "test.mkv" -vcodec copy -acodec aac 'test.mp4' 分割命令: ffmpeg -ss 00:00: ...

  4. FFMPEG 视频分割和合并

    ffmpeg -ss 00:00:00 -t 00:00:30 -i test.mp4 -vcodec copy -acodec copy output.mp4 -ss 指定从什么时间开始 -t 指定 ...

  5. JAVA常用工具类-【5】FFMPEG转换、分割、合并音频

    1.JAVA操作音频 package com.day.util;import java.io.*; import java.util.*;public class AudioConvert {publ ...

  6. SRS视频服务器-docker部署srs4.0.198-ubuntu系统:配置低时延实现srt推流和拉流

    一.docker安装srs4.0.198 推荐使用docker来安装srs视频服务器,简单方便 我使用的是ubuntu18.04系统. 1.1.docker的安装 我参考的是:https://blog ...

  7. 在AWS Lambda上部署标准FFmpeg工具——Docker方案

    大纲 1 确定Lambda运行时环境 1.1 Lambda系统.镜像.内核版本 1.2 运行时 1.2.1 Python 1.2.2 Java 2 启动EC2 3 编写调用FFmpeg的代码 4 生成 ...

  8. 利用FFmpeg进行视频文件进行分割

    利用FFMPEG命令进行文件分割 ffmpeg -ss 00:00:00 -i input.mp4 -c copy -t 60 output.mp4 -ss 表示视频分割的起始时间,-t 表示分割时长 ...

  9. docker部署python web应用_在 Docker 中运行一个 Python 的 Web 应用

    几周前, Elastic Beanstalk声明在AWS云中配置和管理Docker容器.在本文中,我们通过一个简单的注册表单页面应用去理解Docker部署过程,该表单使用Elastic Beansta ...

  10. 基于docker部署的微服务架构(九): 分布式服务追踪 Spring Cloud Sleuth

    为什么80%的码农都做不了架构师?>>>    前言 微服务架构中完成一项功能经常会在多个服务之间远程调用(RPC),形成调用链.每个服务节点可能在不同的机器上甚至是不同的集群上,需 ...

最新文章

  1. 可恶,新网互联又出问题了
  2. 【蓝桥杯】基础练习 十六进制转八进制(Java实现)
  3. java判断类型_Java中类型判断的几种方式 - 码农小胖哥 - 博客园
  4. 软件测试——性能测试、压力测试、负载测试等详解
  5. java sql分页_mysql、sqlserver、oracle分页,java分页统一接口实现
  6. json转string示例_C.示例中的String.Insert()方法
  7. C#开发笔记之17-如何用C#深克隆一个对象(传统方案)?
  8. document.body、document.documentElement和window获取视窗大小的区别
  9. linux sed保存,linux sed
  10. 菜鸟玩qt(9)---qt常见问题(转)
  11. access中如何画斜线_三维并没有想象中那么难,思路清晰画图就简单
  12. 搜狗推出卫星影像地图 将覆盖全部七个奥运城市
  13. 山山的数学(困难版)
  14. windows超级工具AlantopTool
  15. 思科FTP服务器如何传输文件,与FXP配置示例的ASA文件传输
  16. CentOS7 Java应用文件名乱码问题解决(文件下载和创建文件导致的文件名乱码)
  17. LOJ 10155 - 「一本通 5.2 例 3」数字转换
  18. 最小编辑距离 (MED)实现-Python
  19. 六款好用的视频编辑软件推荐
  20. 在linux下安装xp系统

热门文章

  1. 已解决:录屏软件录不了全屏的问题
  2. 过程能力指数Cp与Cpk计算公式
  3. Tcl 语言——流程控制篇
  4. 手把手教你架构3D游戏引擎
  5. 计算机主板光驱插口,如何查看笔记本光驱位和主板的SATA接口版本
  6. vs中opencv配置
  7. 如何提升Javascript 基础
  8. FPGA 429 接口设计
  9. Matlab绘制散点密度图
  10. 微信小程序上传图片到Java后端