首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ffmpeg concat视频长度不是时长之和

ffmpeg是一款开源的跨平台音视频处理工具,可以用于处理、转码、编辑、合并等多媒体文件。在使用ffmpeg的concat功能合并视频时,有时会出现合并后视频长度不是时长之和的情况。

这个问题通常是由于视频编码参数不一致导致的。当合并多个视频文件时,如果这些视频的编码参数(如分辨率、帧率、码率等)不一致,ffmpeg会自动选择一个合适的编码参数进行转码,从而导致合并后的视频长度与时长之和不一致。

为了解决这个问题,可以通过以下步骤进行操作:

  1. 确保所有待合并的视频文件的编码参数一致,包括分辨率、帧率、码率等。可以使用ffmpeg的ffprobe命令查看视频文件的编码参数信息,例如:
  2. 确保所有待合并的视频文件的编码参数一致,包括分辨率、帧率、码率等。可以使用ffmpeg的ffprobe命令查看视频文件的编码参数信息,例如:
  3. 如果待合并的视频文件编码参数不一致,可以使用ffmpeg的filter_complex功能进行转码,统一编码参数。例如,假设有两个视频文件input1.mp4和input2.mp4,可以使用以下命令进行转码:
  4. 如果待合并的视频文件编码参数不一致,可以使用ffmpeg的filter_complex功能进行转码,统一编码参数。例如,假设有两个视频文件input1.mp4和input2.mp4,可以使用以下命令进行转码:
  5. 使用ffmpeg的concat功能进行视频合并,确保所有待合并的视频文件编码参数一致。例如,假设有两个视频文件input1.mp4和input2.mp4,可以使用以下命令进行合并:
  6. 使用ffmpeg的concat功能进行视频合并,确保所有待合并的视频文件编码参数一致。例如,假设有两个视频文件input1.mp4和input2.mp4,可以使用以下命令进行合并:

需要注意的是,以上命令仅供参考,具体的参数和命令根据实际情况进行调整。

推荐的腾讯云相关产品:腾讯云视频处理服务(云点播),该服务提供了丰富的音视频处理能力,包括转码、剪辑、拼接等功能,可以满足各种音视频处理需求。详情请参考腾讯云视频处理服务官方文档:腾讯云视频处理服务

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用FFmpeg API获取flv视频时长

哈喽,这一篇记录一个小小的关于FFmpeg的使用,借助FFmpeg的API接口获取flv格式视频时长。...发现获取的视频时长为0,按照排查问题的一般思路,试试别的格式的文件是否也会有问题。尝试将文件更换为MP4文件,发现可以正常获取时长,如下图: ?...甚是不理解啊,经查阅资料发现,对于flv文件需要首先调用avformat_find_stream_info, 才可正常的获取视频时长,这一过程中,同时还发现另外一种获取视频时常的方式:FFmpeg对于...cout << "flv file duratio: " << seconds << std::endl; system("pause"); return 0;} 其中:另外一种获取视频时长的方式为...终于可以成功获取flv格式视频时长。可以动手去试试了!

3.8K30

ffmpeg检查视频文件时长

视频播放时,经常会遇到: 1、不同播放器显示的文件时长不一样 2、视频转码后,文件时长发生了变化 3、视频播到后面,只有画面没有声音 等各种异常,这时我们可以检查一下原视频时长 但是原视频时长也有多个值...,分别是容器时长、音视频时长、解码后播放时长,这几个值可能不一样,就导致了不同播放器显示值不一样,不同播放时也因此表现得不一样 容器时长(container duration)的获取方法: ffprobe...error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 -i input.mp4 image.png 音视频时长...,顺便一提,一个媒体文件里边有多个音视频流,各个流的时长也未必一样,一般播放器会以video stream的时长作为播放时长 另外,并不是所有格式的视频,会在音视频流级别保存了时长,这时可能会拿不到时长...解码后文件播放时长(get duration by decoding) 可以通过ffmpeg命令,先完全解码,然后获取到文件时长 ffmpeg.exe -i input.mp4 -f null -

24K159
  • FFMPEG-如何对视频时长切片与压缩

    本文介绍如何用ffmpeg开源组件按时长进行切片,举一个例子,一个视频网站,拿到一个时长1.5小时的电影,用户点击播放时,常用的技术方案就是把一个完整的大文件,转码后切成按固定时长的小文件,分发到cdn...上去,这样用户就可以实现就近下载,包括拖放等操作,这里面有比较多的技术细节,本文只讨论第一步,按时长切片。...一 获取视频时长 ffmpeg安装后,直接执行ffmpeg -i 文件就可以从内容中获取到时长,如下图所示,其中的Duration就是时长 wangyachangdeMacBook-Pro:ffmpeg...wangyachang$ /usr/local/ffmpeg/bin/ffmpeg -i movie.mp4 ffmpeg version 3.0.2 Copyright (c) 2000-2016.../usr/bin/env python # -*- coding: UTF-8 -*- #本脚本使用ffmpeg分割音视频文件,分割过程不进行转码或压缩 import subprocess import

    2.2K10

    使用ffmpeg拼接视频踩坑记录

    最近在工作中遇到一个ffmpeg的坑,特此记录下。我们在工作中,有个需求是将分段存储的视频拼接成一个完整的视频,发现使用ffmpeg拼接后视频时长不对。...举个列子,我用ffmpeg将4个半小时的mp4视频拼接后,得到的视频长度远超过2小时,观看后发现在视频的连接点,会出现长时间的卡顿,导致最终视频时间超长。...但是,这种拼接方式有自己的局限,首先它只能拼接相同编码的视频,比如都是mp4。而且,这种方式也有bug,拼接mp4视频文件得出来的视频时长不对,就是我开头所说的问题,因为这个bug我们差点改业务需求。...2.使用concat协议 ffmpeg -i "concat:input1.ts|input2.ts|input3.ts" -c copy output.ts 这个方式我们没有具体测试...使用Concat filter ffmpeg -i input1.mp4 -i input2.webm -i input3.mov -filter_complex "[0:v:0][0:a:0

    16710

    利用Simple-RTMP-Server搭建RTMP和HLS直播服务(上)

    ts文件的长度和个数是根据配置文件的hls_fragment和hls_window属性配置出来,详细请参看:https://github.com/ossrs/srs/wiki/v2_CN_DeliveryHLS...hls_fragment 10; hls_window 60; } } hls配置节(hls分发) enabled:是否开启HLS hls_fragment:指定ts切片的最小长度...(单位:秒) hls_window:指定HLS大小,即m3u8中ts文件的时长之和,超过总时长后,丢弃第一个m3u8中的第一个切片,直到ts的总时长在这个配置项范围之内。...关于作者 王学,目前就职于东方网力,早期进入北海通信,对音视频领域的研发产生了极大的兴趣,在嵌入式板子上研究ffplay(当时FFmpeg还是0.9.x版本)。...如果你有意为音视频、多媒体开发领域发展做出贡献,欢迎成为LiveVideoStack社区编辑的一员。你可以翻译、投稿、采访、提供内容线索等。

    2.7K30

    FFmpeg视频裁剪与拼接命令 ( 裁剪视频命令 | h264 编码的 SPS 和 PPS 数据 | 拼接视频 - 相同编码和相同容器格式的拼接 | 拼接视频 - 不同编码和容器格式的拼接测试 )

    , 时长是 5 秒 , 视频编码是 H264 编码 , 音频编码是 AAC 编码 ; 2、h264 编码的 SPS 和 PPS 数据 在 H.264 视频编码格式中 : SPS : 全称 Sequence...下面的 2 种视频拼接命令 , 效果都很好 ; ffmpeg -i "concat:1.ts|2.ts|3.ts" -codec copy output.ts ffmpeg -f concat -i..., 第一个命令拼接视频失败 , ffmpeg -i "concat:1.flv|2.flv|3.flv" -codec copy output.flv ffmpeg -f concat -i list.txt...'3.flv' 然后 , 执行 ffmpeg -f concat -i list.txt -codec copy output2.flv 命令 , 成功拼接视频 并且可以成功播放 ; 三、拼接视频..., 2.ts , 3.ts 这 3 个视频文件进行拼接 , 拼接过程也出现了 DTS 警告 , 视频时长是对的 , 但是 第二个音频 的采样率是错误的 , 播放 output.mp4 文件时 , 中间一段直接跳过

    2.8K10

    实战详细讲解ffmpeg命令的使用(来自一线的经验,视频合并&avi转MP4&补空白音频【收藏下来一定用的到】)

    input_file_options:用于指定输入文件的操作参数,比如:-f concat 参数等 -i: 指定输入文件的地址,必要参数。...则写入的格式如下: 执行视频合并的ffmpeg的命令: ffmpeg -f concat -safe 0 -y -i D:\\ffmpeg_test\\filelist.txt -c copy -strict...-f concat:指定该操作是合并操作 -safe 0:用于避免操作输入流的权限问题 -c copy:用于指定输出视频流和输入视频流的编码格式保持一致 -strict -2:用于避免opus in MP4...生成一个跟原音频时长一样的空白音频,其命令是:这里假设原音频的时长是20秒,所以就生成一个时长为20秒的空白音频。...-i D:\\ffmpeg_test\\org_voice_input.wav -filter_complex "aevalsrc=0:d=2 [s1];[s1][1:a]concat=n=2:v=

    22.3K41

    FFmpeg GL-transition转场的简单使用体验

    写在前面 最近在处理视频,遇到两个视频之间的转场用原生的 xfade写起来很痛苦,实现成本高,难度大;我这里主要用的FFmpeg,就想找一个插件专门干转场这个事;搜索了一翻后找到 GL-transition...gltransition -y out.mp4 测试体验安装 由于编译安装ffmpeg-gl-transition 有一定的门槛,这里可以体验nodejs实现的版本:ffmpeg-concat 1、先确定安装好...ffmpeg; 2、安装好node.js 3、安装ffmpeg-concat: npm install -g ffmpeg-concat (可能需要魔法上网,装不上的话记得自己配置npm的代理) 我暂时也是用这种方式体验的...; (ps:这种方式临时文件大) 使用测试 我准备好了两个视频:input2.mp4 input3.mp4 ffmpeg-concat -d 1000 -t cube -o cube1000.mp4...-t, --transition-name gl-transition 转场名称 -d, --transition-duration 转场的时长毫秒(默认:500) -T

    2.5K20

    FFmpeg 学习

    out.flv -i 是代表输入 此命令默认会按照其默认编码器参数重新编码,而不是仅仅转封装 按照轨道(流) ffmpeg -i 1.mp4 -i 2.mp4 -map 0:v:0 -map 1:a:...注意:因为 ffmpeg 的 bug,如果视频第一帧不是从 0 开始,则起始截取位置可能会乱掉,如果想从头开始,则删掉 -ss 参数即可 指定时长切片 ffmpeg -y -nostdin -hide_banner...vcodec copy -acodec copy full.mp4 视频拼接 参考: wikiConcatenate 参数形式 ffmpeg -i "concat:input1.mp4|input2.mp4..." -c copy out.mp4 外部 txt 形式 ffmpeg -f concat -safe 0 -i files.txt -c copy output.mp4 txt 的文件的格式: # this...,v:1 则是第二条视频流,a:0 则是第一条音频流 -of default=nk=1:nw=1 同 ### 时长 小结中的介绍 色彩空间 -pix_fmts Log 控制 -loglevel 参数控制

    78620

    FFmpeg从入门到精通-云享读书会

    【5】B帧不是参考帧,不会造成解码错误的扩散。...(time_ms)).toString(QString::fromLatin1("HH:mm:ss.zzz")); } 输出结果: 视频时长(标准时间):00:06:37.15 最视频时长(...,可能有些视频裁剪后的效果,如期望一致,00秒开始,30秒结束,总共30秒的视频,但是有些视频裁剪后你会发现可能开始和结束都不是很准确,有可能是从00秒开始,33秒结束。...因为这些视频里30秒处地方刚好不是关键帧,而ffmpeg会在你输入的时间点附近调整到最接近的关键帧处,然后做接下来的事情。 如果你不懂什么是关键帧,没关系,这也不影响你使用这个命令。...上面的造成那样的原因是所选的时间不是关键帧,那如果我们将输入的视频先转换成所有的帧都为关键帧的视频,其实就是将所有的帧的编码方式转为帧内编码 ffmpeg -i r001.flv -strict -2

    5.1K20

    测试人工智能自动语音识别系统

    开发将ASR的SDK集成在一个demo里面,我来人工测试,也不是调用接口。就是模拟用户反复使用测试,来判断反应时间是否能达到要求。 先给了一个Android版本。...二、ffmpeg使用 1.视频格式转换:ffmpeg -i num.mp4 -codec copy num2.avi 将num.mp4复制并转换为num2.avi 注:-i后表示要进行操作的文件 2.gif...制作:ffmpeg -i num.mp4 -vframes 20 -y -f gif num3.gif 将num.mp4的前20帧制作为gif并命名为num3 3.视频截取:ffmpeg -i num.mp4...-ss 0 -t 3 -codec copy cut1.mp4 -ss后数字表示截取时刻,-t后数字表示截取时长 截取视频某一时刻为图片:ffmpeg -i num.mp4 -y -f image2...python的音频播放,我尝试了几个,用pygame可以自己设置时间长度

    1.3K30

    测试人工智能自动语音识别系统

    开发将ASR的SDK集成在一个demo里面,我来人工测试,也不是调用接口。就是模拟用户反复使用测试,来判断反应时间是否能达到要求。 先给了一个Android版本。...二、ffmpeg使用 1.视频格式转换:ffmpeg -i num.mp4 -codec copy num2.avi 将num.mp4复制并转换为num2.avi 注:-i后表示要进行操作的文件 2.gif...制作:ffmpeg -i num.mp4 -vframes 20 -y -f gif num3.gif 将num.mp4的前20帧制作为gif并命名为num3 3.视频截取:ffmpeg -i num.mp4...-ss 0 -t 3 -codec copy cut1.mp4 -ss后数字表示截取时刻,-t后数字表示截取时长 截取视频某一时刻为图片:ffmpeg -i num.mp4 -y -f image2...python的音频播放,我尝试了几个,用pygame可以自己设置时间长度

    1.4K00

    视频转换

    提取音频 ffmpeg -i test.mp4 -acodec copy -vn output.aac 上面的命令,默认mp4的audio codec是aac,如果不是,可以都转为最常见的aac。...很简单: bitrate = file size / duration 比如一个文件20.8M,时长1分钟,那么,码率就是: biterate = 20.8M bit/60s = 20.8*1024*1024...方法一:FFmpeg concat 协议 对于 MPEG 格式的视频,可以直接连接: ffmpeg -i "concat:input1.mpg|input2.mpg|input3.mpg" -c copy...方法二:FFmpeg concat 分离器 这种方法成功率很高,也是最好的,但是需要 FFmpeg 1.1 以上版本。...concat=n=3:v=1:a=1表示有三个输入文件,输出一条视频流和一条音频流。[v] [a] 就是得到的视频流和音频流的名字,注意在 bash 等 shell 中需要用引号,防止通配符扩展。

    95740
    领券