ffmpeg2段视频合成一段

news2024/11/24 9:17:39
查看分辨率
帧率和编码器
ffprobe -v error -select_streams v:0 -show_entries stream=codec_name,width,height,avg_frame_rate -of default=noprint_wrappers=1 rs2.mp4

得到,编码器,分辨率,还有帧率
codec_name=h264
width=1920
height=1080
avg_frame_rate=60/1




都是在帧率和分辨率以及编码器相同的情况下

ffmpeg -i "concat:input1.mp4|input2.mp4" -c copy output.mp4

这种是不知道为什么尝试了很久,都只能生成一个视频,合成出来的结果不对,必须用txt来弄。

而得

 file.txt

file 'rs.mp4'
file 'rs2.mp4'

然后代码得

ffmpeg -f concat -i "file.txt" -c:v copy ttt3.mp4

java代码

查看文件的分辨率


 

import com.alibaba.fastjson.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class VideoInfo {

    public static void main(String[] args) {
        String videoPath = "path/to/video.mp4";

        try {
            ProcessBuilder processBuilder = new ProcessBuilder(
                    "ffprobe",
                    "-v", "error",
                    "-select_streams", "v:0",
                    "-show_entries", "stream=codec_name,width,height,avg_frame_rate",
                    "-of", "json",
                    videoPath
            );

            Process process = processBuilder.start();

            // 读取ffprobe命令的输出
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            StringBuilder output = new StringBuilder();
            String line;
            while ((line = reader.readLine()) != null) {
                output.append(line);
            }

            process.waitFor();

            // 解析JSON输出
            JSONObject jsonObject = JSONObject.parseObject(output.toString());
            JSONArray streams = jsonObject.getJSONArray("streams");
            JSONObject contentParamJson = streams.getJSONObject(0);
            System.out.println(contentParamJson);
            System.out.println(jsonObject);
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}

按照指定的帧率合成视频

-r "帧率"

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

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

相关文章

小白到运维工程师自学之路 第五十二集 (三剑客之awk)

一、概述 awk命令是一种在Unix或类Unix系统上使用的文本处理工具。它以行为单位读取输入文件,按照预定义规则对每一行进行处理并生成输出。 通过使用一种简单的编程语言,awk提供了对文本数据进行过滤、处理和转换的强大能力。它可以轻松地提取文本中的…

实验四 交换机 VLAN 配置

文章目录 实验目的实验原理实验内容实验总结 实验目的 理解 VLAN 的概念、原理;掌握基于交换机端口的 VLAN 划分方法;掌握 Cisco2950 交换机的单交换机和跨交换机 VLAN 配置方法。 实验原理 (1)VLAN 的概念 VLAN(Vi…

CQ 社区版 2.2.0 发布 | 配置要求降为 4 核 16G!!!

🎉🎉🎉 喜大普奔!!! 经过我们研发团队的不断努力,CloudQuery 终于「瘦身」成功啦!!! 本次发布的 v2.2.0 版本,推荐配置降为: CPU&a…

【iOS内存管理-内存的几大区域】

前言 iOS内存管理的第一篇章,了解iOS内存的五大分区。 总览 iOS中,内存主要分为五大区域:栈区,堆区,全局区/静态区,常量区和代码区。总览图如下。 如上图所示,代码区是在低地址段存放&#x…

关于AWS MSK Connector Execution Role的解释

尽管在创建AWS MSK Connector时,Execution Role是一个必填项,就像下面这样: 并且在官方文档中给出的Execution Role样例: https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-service-execution-role.html 中也…

基于JSP+Servlet的学生信息管理系统

用户类型:三角色(学生、教师、管理员) 项目架构:B/S架构 设计思想:MVC 开发语言:Java语言 前端技术:Layui、HTML、CSS、JS、JQuery、Ajax等技术 后端技术:JSP、Servlet、JDBC、…

基于JSP+Servlet的医药药品管理系统

用户类型:双角色角色(患者、管理员[医生]) 设计模式:MVC(jspservletjavabean) 项目架构:B/S架构 开发语言:Java语言 主要技术:jsp、servlet、jdbc、jsp、html5、jquery、css、js…

【哈希表/字符串-简单】LeetCode 205 同构字符串 Java

需要判断s和t每个位置上的字符是否都一一对应,即s的任意一个字符被t中唯一的字符对应,同时t的任意一个字符被s中唯一的字符对应。这也被称为【双射】的关系。 以示例二为例,t中的字符a和r虽然有唯一的映射o,但对于s中的字符o来说…

Vim批量注释与反注释

在使用vim编写代码的时候,经常需要用到批量注释与反注释一段代码。下面简要介绍其操作。本文记录在mac/linux下的vim批量注释。 一开始我想让vim配置ctrl/快捷键,快速批量注释,但是vim的文档中不支持这样的快捷键。 如果实在要弄也能弄&…

集群基础2——LVS负载均衡httpd服务(nat模式)

文章目录 一、环境说明一、配置调度器网卡二、配置后端服务器三、配置调度器四、验证五、设置https负载均衡 一、环境说明 使用lvs中的nat模型,对http负载均衡集群。 主机IP角色安装服务真实IP:192.168.161.129VIP:192.168.161.130调度服务器…

深信服 网络工程师面试题(二)

指针函数和函数指针的区别 指针函数是指带指针的函数,即本质是一个函数,函数返回类型是某一类型的指针。 首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指…

牛客HJ99 - 自守数【暴力 + 换位取模】

原题传送门 原题描述 首先我们来看一下原题是怎么描述的,题面很简单,输入n,然后让我们去统计从1 ~ n之间的自守数有几个,那什么是【自守数】呢,上面也说到了,即一个数在平方之后该数的尾数等于该数自身的自…

榜单!高精定位模块/系统「争夺战」,份额Top5供应商都有谁

以当前国内车企落地高速NOA采用的主流方案为例,普遍采用了「高精定位高精地图车端传感器」的多源融合定位策略。其中,在高精定位部分,大部分采用GNSSIMURTK的方案。 从目前的智驾系统演进来看,主流的仍是在L2基础上,通…

k8s 基础命令和常用命令等

通过kubectl命令可以操作和管理K8S资源,对于初学者可以在掌握K8S基础命令的基础上再去学习K8s的原理和架构,那么K8S常用的命令有哪些呢? 01 K8S命令概述 在学习K8s基础命令前,了解和学习docker命令是很有必要的,kub…

c语言--unsigned修饰符

在C语言中,unsigned是一种无符号整数修饰符。它可以与多个整数类型(如int、short、long等)结合使用,表示该整数类型只包含非负数值。unsigned修饰的整数类型不保存正负号位,因此可以用来表示更大的正整数范围。 例如&…

干货分享|SOLIDWORKS Composer如何解决缺失的actor?

​SOLIDWORKS Composer导入SOLIDWORKS模型,以便用户可以创建图形内容并与更广泛的受众共享项目。但是,有时模型导入时缺少Actor或组件,通常是由于在SOLIDWORKS中以轻量模式加载组件或Composer中的导入设置排除了曲面实体。 轻量模式 轻量模式…

基于DEF生成LIB的方法

基于DEF生成LIB的方法 [生成64位lib] lib /def:libcurl-x64.def /MACHINE:x64 /OUT:libcurl-x64.lib[生成32位lib] lib /def:libcurl-x64.def /OUT:libcurl-x64.lib

flutter开发实战-生日等日期选择器DatePicker

flutter开发实战-生日等日期选择器DatePicker 在开发遇到设置生日等信息需要选择日期,这里用到的是CupertinoDatePicker iOS效果的日期、时间选择器 一、效果图 运行后效果图如下 二、代码实现 我们需要调用底部弹窗显示 //显示底部弹窗static void bottomShe…

07_flash全擦除实验

07_flash全擦除实验 1. SPI 协议1.1 SPI 协议1.2 SPI 物理层1.3 SPI 协议层1.3.1 SPI 通讯模式时序图1.3.2 CPHA0 时的 SPI 通讯模式1.3.3 CPHA1 时的 SPI 通讯模式 2. 实验目标3. SPI-Flash 芯片3.1 硬件资源3.2 板载 Flash 原理图3.3 操作时序3.3.1 全擦除时序3.3.2 写使能时…

天眼的使用指南,ngsoc告警分析

分以下几类讲,天眼的功能,日志分析字段,常见的烂分析,告警分析。两个实例;ngsoc的简单实用和告警分析。 #天眼功能 分为,分析平台,流量传感器,文件威胁鉴定器 #部署架构 高级危险…