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. 算法基础知识科普:8大搜索算法之AVL树(上)
  2. 通过mtd读写flash_Ambiq继续引领低功耗单片机,新款Apollo4将2MB MRAM作为Flash
  3. python编程求导数_用python怎么计算导数最简单?
  4. 公共mysql数据库_公共MySQL的数据库服务器层
  5. 服务器应用服务为何卡顿?原来是内存耗尽惹的祸!
  6. 2017.9.14 棘手的操作 思考记录
  7. mapreduce程序调用各个类的功能
  8. 中国石油大学计算机第二阶段在线作业,中国石油大学计算机应用基础第二阶段在线作业答案2018年...
  9. 百度云离线下载含有违规内容检測方法分析
  10. hadoop+HBase+ZooKeeper+Hive完全分布式集群部署安装
  11. 个人简历管理系统-总结
  12. java中的守护线的应用_JVM中的守护线程示例详解
  13. 学习笔记 —— 基于C加速的Python高效计算 (Cython pybind11)
  14. 看完这篇java单利模式文章,面试的时候再也不怕了
  15. JS中的函数参数传递到底是按值传递还是按引用传递
  16. 什么轴的机械键盘声音小
  17. Silane-PEG-COOH,硅烷-聚乙二醇-羧基结构式及相关应用介绍
  18. GreenDao3.0 使用(包括导入,具体方法,基本使用,加密,数据库升级等)
  19. composer详解
  20. 植物肉品牌v2进军中国市场,带来牛肉糜、猪肉糜及牛肉汉堡饼等

热门文章

  1. 采用泰克示波器TBS2000和TCP0030A电流探头准确评估高速DCDC转换器电感的选择
  2. 全网唯一, MATLAB绘制好看的弦图
  3. K3Cloud不重启IIS修改调试代码
  4. 操作系统答案 第四版
  5. VB开发OCX控件的属性之自定义列表项
  6. android使用h5框架,轻量级Android  H5 Native Hybrid 框架
  7. 推荐个国产框架,从此轻松开发 小程序/App/h5
  8. 单片机初始化WIFI模块
  9. C# 之 LINQ(一)
  10. 正则表达式同时匹配中英文及常用正则表达式