Linux安装ffmpeg并截取图片和视频的缩略图使用
Linux安装ffmpeg并截取图片和视频的缩略图使用
官方下载地址: http://www.ffmpeg.org/download.html#releases
-
我这里使用版本: ffmpeg_3.2_repo.tar.gz 可以百度网盘分享给大家
-
安装的环境为 Centos 64位操作系统
-
安装时须为 root 用户进行操作
#解压
tar -zxvf ffmpeg_3.2_repo.tar.gz#进入目录
cd ffmpeg_3.2_repo#安装可能需要一点时间
sh setup.sh
截取图片缩略图命令
ffmpeg -i a.png -y -vf scale=100:100/a thumb.jpg
- a.png 原图片
- 100:100 缩略图宽:缩略图高
- thumb.jpg 缩略图片
截取视频第一帧缩略图命令
ffmpeg -i bb.mp4 -y -vframes 1 -vf scale=100:100/a thumb.jpg
- bb.mp4 原视频
- 100:100 缩略图宽:缩略图高
- thumb.jpg 缩略图片
调用java命令生成缩略图工具类
package com.beyond.utils;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import java.io.BufferedReader;
import java.io.Closeable;
import java.io.File;
import java.io.InputStreamReader;/*** 执行shell命令ffmpeg工具类 liang*/
public class ShellCommandUtil {private static final Logger logger = LoggerFactory.getLogger(ShellCommandUtil.class);/**** @param sourceFile 原文件路径* @param thumbFile 目标文件路径* @param thumbWidth 宽度* @param thumbHigh 高度* @return* ffmpeg -i a.png -y -vf scale=100:100/a thumb.jpg*/public static boolean ffmpegImg(String sourceFile, String thumbFile, String thumbWidth, String thumbHigh){String cmd = " ffmpeg -i " + sourceFile + " -y -vf scale=" + thumbWidth + ":" + thumbHigh + "/a " + thumbFile;execCmd(cmd, null);logger.info("ShellCommandUtil---ffmpegImg==", cmd);File file = new File(thumbFile);if(!file.exists()){return false;}return true;}/**** @param sourceFile* @param thumbFile* @param thumbWidth* @param thumbHigh* @return* ffmpeg -i bb.mp4 -y -vframes 1 -vf scale=100:100/a thumb.jpg*/public static boolean ffmpegVideo(String sourceFile, String thumbFile, String thumbWidth, String thumbHigh){String cmd = " ffmpeg -i " + sourceFile + " -y -vframes 1 -vf scale=" + thumbWidth + ":" + thumbHigh + "/a " + thumbFile;execCmd(cmd, null);logger.info("ShellCommandUtil---ffmpegVideo==", cmd);File file = new File(thumbFile);if(!file.exists()){return false;}return true;}/*** 执行系统命令, 返回执行结果* @param cmd 需要执行的命令* @param dir 执行命令的子进程的工作目录, null 表示和当前主进程工作目录相同*/public static String execCmd(String cmd, File dir) {StringBuilder result = new StringBuilder();Process process = null;BufferedReader bufrIn = null;BufferedReader bufrError = null;try {String[] commond = {"/bin/sh","-c",cmd};// 执行命令, 返回一个子进程对象(命令在子进程中执行)process = Runtime.getRuntime().exec(commond, null, dir);// 方法阻塞, 等待命令执行完成(成功会返回0)process.waitFor();// 获取命令执行结果, 有两个结果: 正常的输出 和 错误的输出(PS: 子进程的输出就是主进程的输入)bufrIn = new BufferedReader(new InputStreamReader(process.getInputStream(), "UTF-8"));bufrError = new BufferedReader(new InputStreamReader(process.getErrorStream(), "UTF-8"));// 读取输出String line = null;while ((line = bufrIn.readLine()) != null) {result.append(line).append('\n');}while ((line = bufrError.readLine()) != null) {result.append(line).append('\n');}}catch (Exception e){e.printStackTrace();}finally {closeStream(bufrIn);closeStream(bufrError);// 销毁子进程if (process != null) {process.destroy();}}// 返回执行结果return result.toString();}private static void closeStream(Closeable stream) {if (stream != null) {try {stream.close();} catch (Exception e) {e.printStackTrace();}}}}
相关文章:
Linux安装ffmpeg并截取图片和视频的缩略图使用
Linux安装ffmpeg并截取图片和视频的缩略图使用 官方下载地址: http://www.ffmpeg.org/download.html#releases 我这里使用版本: ffmpeg_3.2_repo.tar.gz 可以百度网盘分享给大家 安装的环境为 Centos 64位操作系统 安装时须为 root 用户进行操作 #解压 tar -zxvf ffmpeg_3…...
第三章:人工智能深度学习教程-基础神经网络(第一节-ANN 和 BNN 的区别)
你有没有想过建造大脑之类的东西是什么感觉,这些东西是如何工作的,或者它们的作用是什么?让我们看看节点如何与神经元通信,以及人工神经网络和生物神经网络之间有什么区别。 1.人工神经网络:人工神经网络(…...

高防CDN与高防服务器:为什么高防服务器不能完全代替高防CDN
在当今的数字化时代,网络安全已经成为企业不容忽视的关键问题。面对不断增长的网络威胁和攻击,许多企业采取了高防措施以保护其网络和在线资产。然而,高防服务器和高防CDN是两种不同的安全解决方案,各自有其优势和局限性。在本文中…...

关于卷积神经网络的多通道
多通道输入 当输入的数据包含多个通道时,我们需要构造一个与输入通道数相同通道数的卷积核,从而能够和输入数据做卷积运算。 假设输入的形状为n∗n,通道数为ci,卷积核的形状为f∗f,此时,每一个输入通道都…...

19、Flink 的Table API 和 SQL 中的内置函数及示例(1)
Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…...

<a>标签的download属性部分浏览器无法自动识别文件后缀
问题 最近开发中遇到的问题,文件名中含有点和逗号字符,当使用a标签的download属性下载内容时,如果不指定后缀,部分浏览器无法自动识别文件后缀。如下图所示: 定义用法 download 属性定义了下载链接的地址。 href 属性…...

前端图片压缩上传,减少等待时间!优化用户体检
添加图片注释,不超过 140 字(可选) 这里有两张图片,它们表面看上去是一模一样的,但实际上各自所占用的内存大小相差了180倍。 添加图片注释,不超过 140 字(可选) 添加图片注释&…...

Ionic header content footer toolbar UI实例
1 ionic的button图标 <ion-header [translucent]"true"><ion-toolbar><ion-buttons slot"start"><ion-back-button default-href"/tabs/tab1" text"back" icon"caret-back"></ion-back-button&…...

uniapp 解决H5跨域的问题
uniapp 解决h5跨域问题 manifest.json manifest.json文件中,点击“源码视图”,在此对象的最后添加以下代码: "h5" : {"devServer" : {"port" : 8080, //端口号"disableHostCheck" : true,"proxy" :…...

对称加密(symmetric encryption)和非对称加密(Asymmetric Encryption)(密钥、公钥加密、私钥解密)AES、RSA
文章目录 对称加密与非对称加密对称加密1.1 定义1.2 工作原理1.3 场景分析1.4 算法示例(以AES为例)1.5 对称加密的优点与缺点优点缺点 非对称加密2.1 定义2.2 工作原理注意:每次生成的RSA密钥对都会不一样 2.3 场景分析2.4 算法示例ÿ…...

iOS 16.4 之后真机与模拟器无法使用Safari调试H5页面问题
背景 iOS 16.4之后用真机调试H5时候发现,Safari中开发模块下面无法调试页面 解决方案 在WKWebView中设置以下代码解决 if (available(iOS 16.4, *)) {[_webView setInspectable:YES];}然后再次调试就可以了...

野火霸天虎 STM32F407 学习笔记_3 尝试寄存器映射方式点亮 LED 灯
新建工程 寄存器方式 要命啊,一看名字我就不想试。寄存器新建不得麻烦死。 哎算了为了学习原理,干了。 我们尝试自己写一个寄存器的库函数来引用。 首先我们需要引用 st 官方启动文件 stmf4xx.s,具体用途后面章节再展开讲解。然后我们自…...

ZZ308 物联网应用与服务赛题第F套
2023年全国职业院校技能大赛 中职组 物联网应用与服务 任 务 书 (F卷) 赛位号:______________ 竞赛须知 一、注意事项 1.检查硬件设备、电脑设备是否正常。检查竞赛所需的各项设备、软件和竞赛材料等; 2.竞赛任务中所使用…...

怎样选择文件外发控制系统,让数据实现高效安全交换?
制造型企业都非常重视其知识产权(IP)的安全性,尤其是其最有价值的产品设计数据的安全问题。基于复杂的供应链生态,每天可能要与几十家甚至上百家供应商及合作伙伴进行数据交换。不管是一级还是二级供应商,合作伙伴还是…...

专访 SPACE ID:通往 Web3 无许可域名服务协议之路
Web3 行业发展风起云涌,对于初创项目而言,如何寻找适合自己的赛道是首要问题。当前伴随用户交互和跨平台操作需求日渐兴起,如何更迅速地使用一站式域名实现便捷验证成为大众的心头期盼。 这一背景下,SPACE ID 于众星林立的 Web3 …...
合并分支--将自己的分支合并到master分支
在版本控制系统(例如Git)中,将自己的分支合并到master(或者主分支)通常需要以下步骤: ### 1. 切换到主分支 首先,确保你的本地仓库当前处于主分支。你可以使用以下命令切换到主分支࿱…...
力扣:153. 寻找旋转排序数组中的最小值(Python3)
题目: 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums [0,1,2,4,5,6,7] 在变化后可能得到: 若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]若旋转…...

matlab中实现画函数图像添加坐标轴
大家好,我是带我去滑雪! 主函数matlab代码: function PlotAxisAtOrigin(x,y); if nargin 2 plot(x,y);hold on; elsedisplay( Not 2D Data set !) end; Xget(gca,Xtick); Yget(gca,Ytick); XLget(gca,XtickLabel); YLget(gca,YtickLabel)…...

C语言求解一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
完整代码: /* 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问 该数是多少?*/ #include<stdio.h>int main(){//num为最终所求那个数int num;//i*i为第一个完全平方数for (int i 10; …...
AtCoder abc148
C题 求GCD D题 顺序遍历 E题 trailing zero只与5的个数有关,因此算一下5/25/125…的倍数 # -*- coding: utf-8 -*- # time : 2023/6/2 13:30 # file : atcoder.py # software : PyCharmimport bisect import copy import sys from itertools import perm…...

龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...

GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...