ffmpeg - 将视频从 vp8 转换为 x264 输出具有不同长度的不同视频

标签 ffmpeg video-processing x264 vp8 mp4box

我有一个持续时间为 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, stereo, fltp (default) Stream #0:1: Video: vp8, yuv420p(progressive), 320x240, SAR 1:1 DAR 4:3, 15 fps, 15 tbr, 1k tbn, 1k tbc (default)



我尝试将设置转换为相同的帧速率并添加到 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 的持续时间

最佳答案

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

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

原始帧数:2654

帧速率:每秒 15 帧

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

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

关于ffmpeg - 将视频从 vp8 转换为 x264 输出具有不同长度的不同视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58549762/

相关文章:

java - 空对象引用上的 FFmpeg.execute.FFmpegExecuteResponseHandler

ffmpeg - 如何限制 ffmpeg/x264 中编码帧之间的后向依赖关系

c++ - 看不到 x264 库的日志

php - mov 和 mp4 文件在浏览器中播放

php - 使用 PHPVideoToolkit 将 MP3 转换为具有单个/多个图像的视频作为视频

ffmpeg avformat_open_input() 无法打开包含汉字的 dshow 设备 url

android - K4LVideoTrimmer 中的 ClassNotFoundException : com. coremedia.iso.boxes.FileTypeBox

python - 有没有办法用python自动化/脚本视频编辑?

audio - 从OpenTok服务器下载的视频没有声音

java - 使用 Android 从一系列图像创建视频