首页 > 解决方案 > 将视频从 vp8 转换为 x264 输出具有不同长度的不同视频

问题描述

我有一个持续时间为 2m:39s 的 webm 文件(vp8 编解码器)

使用 ffmpeg -i video.webm 它说视频有 15fps

nput #0, matroska,webm, from 'video.webm': Metadata: encoder : Lavf54.17.3 Duration: 00:02:39.63, start: 0.000000, bitrate: 417 kb/s Stream #0:0: Audio: vorbis, 44100 Hz、立体声、fltp(默认) 流 #0:1:视频:vp8、yuv420p(渐进式)、320x240、SAR 1:1 DAR 4:3、15 fps、15 tbr、1k tbn、1k tbc(默认)

我尝试将设置转换为相同的帧速率并添加到 mp4 容器

$ x264 --output intermediate.264 --fps 15 --preset slow --bitrate 400 --vbv-maxrate 800 --vbv-bufsize 1600 --min-keyint 48 --keyint 48 --scenecut 0 --no-scenecut --pass 1 --video-filter "resize:width=426,height=240" video.webm

$ MP4Box -add intermediate.264 -fps 15 out.mp4

但是生成的文件 out.mp4 现在有 2m:57s 的持续时间

标签: ffmpegvideo-processingx264vp8mp4box

解决方案


当您从原始 .264 转储文件中生成 .mp4 文件时。

这是持续时间的简单计算:

原始帧数:2654

帧速率:每秒 15 帧

mp4 文件的持续时间:2654 /15 = 176.93333 秒 /60 = 2 分 56.93 秒 = ~ 2 分 57 秒

Webm 文件的音频数据可能少于视频帧。所以它的持续时间小于 mp4 文件。


推荐阅读