通过Docker部署的ffmpeg进行视频分割与合并
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进行视频分割与合并相关推荐
- ffmpeg 将视频分割为小段
目录 1. 先看一下分割结果 2. MAC安装ffmpeg 3. ffmpeg视频分割命令介绍 4.编写java程序 (1). 调用: (2). 视频分割的java工具类 5.参考: 1. 先看一下分 ...
- 利用FFMPEG进行视频分割
转载地址:http://blog.csdn.net/bikeytang/article/details/51491139 利用FFMPEG命令进行文件分割 ffmpeg -ss 00:00:00 -i ...
- FFMPEG MKV转换为MP4以及视频分割和合并
mkv转换为mp4 ffmpeg -i "test.mkv" -vcodec copy -acodec aac 'test.mp4' 分割命令: ffmpeg -ss 00:00: ...
- FFMPEG 视频分割和合并
ffmpeg -ss 00:00:00 -t 00:00:30 -i test.mp4 -vcodec copy -acodec copy output.mp4 -ss 指定从什么时间开始 -t 指定 ...
- JAVA常用工具类-【5】FFMPEG转换、分割、合并音频
1.JAVA操作音频 package com.day.util;import java.io.*; import java.util.*;public class AudioConvert {publ ...
- SRS视频服务器-docker部署srs4.0.198-ubuntu系统:配置低时延实现srt推流和拉流
一.docker安装srs4.0.198 推荐使用docker来安装srs视频服务器,简单方便 我使用的是ubuntu18.04系统. 1.1.docker的安装 我参考的是:https://blog ...
- 在AWS Lambda上部署标准FFmpeg工具——Docker方案
大纲 1 确定Lambda运行时环境 1.1 Lambda系统.镜像.内核版本 1.2 运行时 1.2.1 Python 1.2.2 Java 2 启动EC2 3 编写调用FFmpeg的代码 4 生成 ...
- 利用FFmpeg进行视频文件进行分割
利用FFMPEG命令进行文件分割 ffmpeg -ss 00:00:00 -i input.mp4 -c copy -t 60 output.mp4 -ss 表示视频分割的起始时间,-t 表示分割时长 ...
- docker部署python web应用_在 Docker 中运行一个 Python 的 Web 应用
几周前, Elastic Beanstalk声明在AWS云中配置和管理Docker容器.在本文中,我们通过一个简单的注册表单页面应用去理解Docker部署过程,该表单使用Elastic Beansta ...
- 基于docker部署的微服务架构(九): 分布式服务追踪 Spring Cloud Sleuth
为什么80%的码农都做不了架构师?>>> 前言 微服务架构中完成一项功能经常会在多个服务之间远程调用(RPC),形成调用链.每个服务节点可能在不同的机器上甚至是不同的集群上,需 ...
最新文章
- 算法基础知识科普:8大搜索算法之AVL树(上)
- 通过mtd读写flash_Ambiq继续引领低功耗单片机,新款Apollo4将2MB MRAM作为Flash
- python编程求导数_用python怎么计算导数最简单?
- 公共mysql数据库_公共MySQL的数据库服务器层
- 服务器应用服务为何卡顿?原来是内存耗尽惹的祸!
- 2017.9.14 棘手的操作 思考记录
- mapreduce程序调用各个类的功能
- 中国石油大学计算机第二阶段在线作业,中国石油大学计算机应用基础第二阶段在线作业答案2018年...
- 百度云离线下载含有违规内容检測方法分析
- hadoop+HBase+ZooKeeper+Hive完全分布式集群部署安装
- 个人简历管理系统-总结
- java中的守护线的应用_JVM中的守护线程示例详解
- 学习笔记 —— 基于C加速的Python高效计算 (Cython pybind11)
- 看完这篇java单利模式文章,面试的时候再也不怕了
- JS中的函数参数传递到底是按值传递还是按引用传递
- 什么轴的机械键盘声音小
- Silane-PEG-COOH,硅烷-聚乙二醇-羧基结构式及相关应用介绍
- GreenDao3.0 使用(包括导入,具体方法,基本使用,加密,数据库升级等)
- composer详解
- 植物肉品牌v2进军中国市场,带来牛肉糜、猪肉糜及牛肉汉堡饼等