FFmpeg-ffmpeg fps tbr tbn tbc的参数可以修改吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FFmpeg-ffmpeg fps tbr tbn tbc的参数可以修改吗相关的知识,希望对你有一定的参考价值。

参考技术A 目前参数都是固定的,不可以修改的哦

ffmpeg concat 让视频更长

【中文标题】ffmpeg concat 让视频更长【英文标题】:ffmpeg concat makes video longer 【发布时间】:2017-09-20 14:11:46 【问题描述】:

我有 2 个要使用 ffmpeg 连接的视频文件

initial.mp4 视频:h264(高)(avc1 / 0x31637661)、yuv420p(tv)、720x720、1077 kb/s、15.98 fps、16 tbr、600 tbn、1200 tbc(默认)

结尾.mp4 视频:h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt470bg), 720x720 [SAR 1:1 DAR 1:1], 1287 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc (默认

video_instructions_with_ending.txt

file initial.mp4
file initial.mp4
file initial.mp4
file ending.mp4

FFmpeg 命令

ffmpeg -f concat -i video_instructions_with_ending.txt -c copy output.mp4 -y

output.mp4 视频:h264 (High) (avc1 / 0x31637661), yuv420p(tv), 720x720, 27 kb/s, 0.43 fps, 48 tbr, 19200 tbn, 38400 tbc (默认)

输出文件应该是 6 秒。但是输出文件是3分32秒。

任何帮助将不胜感激

对于我使用的文件,您可以从:HERE获取它

【问题讨论】:

请参考this answer,我想这将是您的解决方案。 【参考方案1】:

我尝试了以下命令,它对我有用

ffmpeg -i initial.mp4 -i initial.mp4 -i initial.mp4 -i ending.mp4 -filter_complex concat=n=4:v=1:a=0 -f MOV output.mp4 -y

解释: FFmpeg 有三种 concat 方法

    concat 协议(ffmpeg -i 'concat:input1|input2' -codec 复制输出)。 - 将它用于二进制 concat 兼容文件,如 avi、mpeg-ts 文件 concat demuxer(您已经解释过的方法)- 当您想避免重新编码并且您的格式不支持文件级连接时使用。 concat 过滤器:(上面的答案)- 如果您需要重新编码,例如在应用过滤器时使用。

第三个选项适合这种情况,因为我们需要重新编码文件。

【讨论】:

嗨,阿伦,感谢您的解释。对于第三个选项,因为它是重新编码,我会遭受质量损失对吗? 不一定。我们可以应用其他参数来进行无损编码。有一个参数crf(0-51)。其中 0 表示完全无损,51 表示最有损。当我尝试使用 18 的 crf 时,我可以获得源比特率。以下是命令,我试过'ffmpeg -i initial.mp4 -i initial.mp4 -i initial.mp4 -i ending.mp4 -filter_complex concat=n=4:v=1:a=0 -crf 18 output.mp4 -y' 参考:trac.ffmpeg.org/wiki/Encode/H.264 这修复了我的issue,非常感谢!我以为我在使用 MP4 时要避免这种方法,但显然不是!非常感谢:)【参考方案2】:

ending.mp4 上运行此命令,然后与新文件连接:

ffmpeg -i ending.mp4 -c copy -video_track_timescale 600 newending.mp4

长话短说,时基不同,所以结尾视频会延长。有关时间戳和基准的上下文,请参阅 https://***.com/a/43337235/5726027。

【讨论】:

您好,感谢您的帮助。我试过了,不幸的是合并的视频没有 newending.mp4 。这是为什么呢? 您的视频没有相同的编码。一个或两个可能需要重新编码。

以上是关于FFmpeg-ffmpeg fps tbr tbn tbc的参数可以修改吗的主要内容,如果未能解决你的问题,请参考以下文章

ffmpeg 的 tbr tbc 和 tbn的意义

使用 capture.get(CV_CAP_PROP_FPS) 时 OpenCV 报告 TBR 而不是 FPS

ffmpeg concat 让视频更长

无法使用 ffmpeg 更改视频字幕编解码器

使用 FFmpeg 裁剪视频会过度增加 tbn 值

如何让手游更省带宽,耗电量更少?TBR渲染架构解析!