使用ffmpeg合并视频遇到的坑

news2024/12/22 22:46:25

下面以Linux环境介绍为主

1.ffmpeg可执行命令不同的环境是不同的,Linux在执行命令前还需要授权。

2.合并视频命令:

主要命令: {} -f concat -auto_convert 0 -safe 0 -i {} -y -c:v copy  

坑一:其中第一个花括号替换的是可执行命令所在的绝对路径,这里必须要使用ffmpeg的绝对路径,因为把应用打成jar包是无法获取到绝对路径的,具体可参考:Jar包启动通过ClassPathResource获取不到文件路径问题_classpathresource找不到文件_DanceDonkey的博客-CSDN博客

解决:但是我的可执行文件又无法使用流的方式读取,所以只能让运维把ffmpeg的可执行文件放到生产环境一个固定路径。

坑二:第二个花括号的值 =》是将原来多个视频的路径放到一个txt文件里面,这个值就是这个txt文件的决定路径。

之前我是将原多个视频的路径一个个跟在填充到第二个花括号里面,类似这种

发现一直保存,找不到文件。最后发现必须将这两个mp4的绝对路径按照一定的格式写入到txt文件中,然后把花括号替换这个txt文件的绝对路径才不会报错。

 

 坑三:

 使用Runtime.getRuntime().exec 执行命令,发现这个命令是异步的,意思是大文件视频还没合成完,主线程就已经执行完了,这显然是不能接受的,于是加了一行

process.waitFor(); 测试环境验收完毕,已经就这样结束了,到生产才发现只要执行合并命令就会卡死,最后参考了这个贴子才解决

https://www.cnblogs.com/163yun/p/9878915.html

java关于ffmpeg推流停止的问题_ffmpeg停止推流_qq_35629433的博客-CSDN博客

 

关于ffmpeg的可执行包已上传

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/779551.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何计算 FPS(帧率)

FPS(Frames Per Second),每秒多少帧 在 val.py 中,需要修改参数 batch-size1 同时别忘了修改自己数据集的 yaml 文件以及训练好的 pt 文件,如下图: 修改完成后,运行 val.py,得到结果,如下图&a…

Debian部署Tomcat 注册服务并设置开机启动

目录 写在前面 1.准备工作 2.在Linux下安装Tomcat 3.Tomcat注册服务并设置开机启动 3.1.使用 rc.local 配置开机启动 3.2.使用/etc/init.d 3.3.systemd配置(通用方式) 在Debian系统上安装Tomcat并将其注册为服务以及设置开机启动的步骤。Tomcat是一…

Android Studio 提示 Failed to initialize editor问题的解决

Android Studio 从2018的版本升级到2021年的版本后,无法预览xml。我查了很久,最后发现是Gradle的版本和工具不匹配,按照开发工具的提示,升级版本即可,我的是从3.2.1升级到了4.2.2

在macOS、Windows上使用VSCode + SSH实现远程Matplotlib图形显示

简介 在 macOS 上使用 VSCode SSH 环境来显示 Matplotlib 绘制的图形需要进行一些配置。因为默认情况下, Matplotlib 的图形是无法显示在远程计算机的桌面上的。您可以通过设置 Matplotlib 使用不同的后端(backend)来实现将图形显示在本地计算机上。 第一步&…

CentOS: $‘\r‘: command not found

一、问题 在CentOS中执行脚本deploy.sh时,报错$‘\r’: command not found 原因:shell脚本是在Windows下编写,通过工具软件传输到CentOS中。而Windows下行结尾符号为\r\n ,linux下行结尾时\n,两者不同,所…

SpringBoot整合Redis和RabbitMQ练习

需求:用SpringBootRedisRabbitMQ技术,PostMan发送一个请求,存储到Redis中,并且在控制台获取打印该信息。用PostMan发送一个请求将信息存储到RabbitMQ,并且在监听该队列打印出信息。 练习1:SpringBootRedis PostMan发送一个请求,存…

【车载开发系列】AUTOSAR DemEventParameters

【车载开发系列】AUTOSAR DemEventParameters 【车载开发系列】AUTOSAR DemEventParameters 【车载开发系列】AUTOSAR DemEventParameters一. DemEventParameters的概念二. EventID三. DemEventKind1)DEM_EVENT_KIND_SWC2)DEM_EVENT_KIND_BSW 四. DemDTC…

Netty理论与实践(二) 创建http客户端 服务端

目录 开发实战1. 使用echo服务器模拟http2. netty http核心类3. 服务端4. 客户端 总结和源码参考 开发实战 1. 使用echo服务器模拟http 通过上一篇文章中的echo服务器程序来模拟一次HTTP请求。 接收消息的代码如下: public class ServerStringHandler extends S…

Acwing.003 完全背包问题(DP动态规划)

题目 有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用。 第 i 种物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值。 输入格式 第一行两个整…

【计算机网络】简易UDP网络小程序

文章目录 1. socket函数:创建套接字2. 服务端2.1 服务端创建套接字2.2 服务端绑定2.3 字符串IP和整数IP2.4 运行服务器 3. 客户端3.1 客户端创建套接字3.2 启动客户端 4. 本地测试5. INADDR_ANY 1. socket函数:创建套接字 我们把服务封装成一个类&#…

计算机网络最基础知识介绍

OSI和TCP/IP是很基础但又非常重要的知识,很多知识点都是以它们为基础去串联的,作为底层,掌握得越透彻,理解上层时会越顺畅。今天这篇网络基础科普,就是根据OSI层级去逐一展开的。 01 计算机网络基础 01 计算机网络的分类 按照网络的作用范围:广域网(WAN)、城域网(MA…

【Kafka源码走读】Admin接口的客户端与服务端的连接流程

注:本文对应的kafka的源码的版本是trunk分支。写这篇文章的主要目的是当作自己阅读源码之后的笔记,写的有点凌乱,还望大佬们海涵,多谢! 最近在写一个Web版的kafka客户端工具,然后查看Kafka官网,…

Python基础教程:sklearn机器学习入门

1. sklearn基础介绍 sklearn(全名为scikit-learn)是一个建立在NumPy、SciPy和matplotlib等科学计算库的基础上,用于机器学习的Python开源库。它提供了丰富的工具和函数,用于处理各种机器学习任务,包括分类、回归、聚类…

线性表的顺序存储和链式存储—Python数据结构(二)

线性表 定义: 线性表的定义是描述其逻辑结构,而通常会在线性表上进行的查找、插入、删除等操作。 线性表作为一种基本的数据结构类型,在计算机存储器中映象(表示)一般有两种形式,一种是顺序映象,一种是链式映象。 线…

接口漏洞-WebService-wsdl+SOAP-Swagger+HTTP-WebPack

什么是接口? 接口就是位于复杂系统之上并且能简化你的任务,它就像一个中间人让你不需要了解详细的所有细节。像谷歌搜索系统,它提供了搜索接口,简化了你的搜索任务。再像用户登录页面,我们只需要调用我们的登录接口&am…

Jupyter 安装和使用

安装Jupyter 使用pip工具进行安装,在命令提示窗口输入命令如下: pip install jupyter notebook 使用Jupyter 在命令提示窗口输入如下命令,启动浏览器页面: jupyter notebook 修改jupyter的工作路径/存储路径 由于默认工作路…

去括号问题(C++处理)

继http://t.csdn.cn/kIcUT后的文章 题目描述 当老师不容易,尤其是当小学的老师更难:现在的小朋友做作业喜欢滥用括号。 虽然不影响计算结果,但不够美观,容易出错,而且可读性差。但又不能一棒子打死,也许他们就是将来的…

【Linux从入门到精通】进程的控制(进程退出+进程等待)

本篇文章主要讲述的是进程的退出和进程等待。希望本篇文章的内容会对你有所帮助。 文章目录 一、fork创建子进程 1、1 在创建子进程中操作系统的作用 1、2 写时拷贝 二、进程终止 2、1 常见的进程退出 2、2 进程的退出码 2、2、1 运行结果正确实例 2、2、2 运行结果不正确实例…

防御第二天-防火墙演示实验

1.上课思维导图 2.防火墙演示实验 防火墙FW1&#xff1a;原用户名&#xff1a;admin 原密码&#xff1a;Admin123 配地址&#xff1a;<USG6000V1>sy [USG6000V1]int g0/0/0 [USG6000V1-GigabitEthernet0/0/0]ip add 192.168.18.2 24 打开所有权限[USG6000V1-Gig…

C++(一):基本数据类型

基本数据类型 基本内置类型定义变量type field value;type field(value);type field{value};type field {value}; 数学常量及函数静态类型转换 static_cast格式化字符串std::stringstreamstd::string引入三方库 fmt/core.h 字符运算auto 关键字枚举类型数据类型定义别名判断是…