gpt4 book ai didi

video - 使用 ffmpeg 在不丢失帧的情况下转换视频并具有相同的 fps 和 tbr

转载 作者:行者123 更新时间:2023-12-04 23:20:03 26 4
gpt4 key购买 nike

我的原始视频“test1.mp4”具有以下属性

Stream #0:0(eng): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 283 kb/s, 34.55 fps, 50 tbr, 50k tbn, 50 tbc (default).
我是通过运行 ffmpeg -i test1.mp4 得到的.
我不得不将视频编解码器更改为 h264 .所以我使用下面的命令转换了上面的视频 ffmpeg -i test1.mp4 test1.mp4 .
但是转换后的视频的 Prop 发生了变化。 fps 为 50,tbr 为 50。与原始视频相比,帧数也有所增加。
 Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 114 kb/s, 50 fps, 50 tbr, 12800 tbn, 100 tbc (default)
点击此链接后 https://superuser.com/questions/1307863/why-is-ffmpeg-changing-framerate-from-60-to-120 ,我发现ffmpeg使用 tbr值而不是 fps在转换时为了不丢失任何帧,但以重复帧为代价。正如上面链接中所建议的,我使用了 vsync 0转换视频时的选项。
ffmpeg -i test1.mp4 -vsync 0 test1_sync.mp4.
现在帧数与输入视频相同(使用 ffprobe 检查)。但是 fps和原来的视频差别还是不大的。
 Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 61 kb/s, 12.88 fps, 50 tbr, 12800 tbn, 100 tbc (default).
即使fps不同,为什么帧数保持不变?
对于我的用例,我需要转换后的视频在与原始视频相同的时间戳下具有相同数量的帧,我只需要将编解码器更改为 h264 .我不想重复或丢失帧。
我怎样才能做到这一点?

最佳答案

使用 -r 可以指示 fps

ffmpeg -i test1.mp4 -r 34.55 test1_sync.mp4

Duration: 00:00:54.18, start: 0.000000, bitrate: 273 kb/sStream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 202x360 [SAR 1:1 DAR 101:180], 269 kb/s, 34.55 fps, 34.55 tbr, 11056 tbn, 69.10 tbc (default)

关于video - 使用 ffmpeg 在不丢失帧的情况下转换视频并具有相同的 fps 和 tbr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68766604/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com