使用FFMPEG更改mp4视频时长

问题描述 投票:0回答:2

我正在尝试使用FFMPEG改变视频持续时间。我不相信这与元数据相关联,而是以某种方式在视频的开头编码。有谁知道是否有可能改变这个值..?

 Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    title           : “test_title"
    encoder         : Lavf55.19.104
 Duration: 00:57:51.81, start: 0.000000, bitrate: 1289 kb/s
 Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 1157 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
 Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 126 kb/s (default)

谢谢

ffmpeg video-processing
2个回答
1
投票

他们的维基上实际上有一个帖子:https://trac.ffmpeg.org/wiki/How%20to%20speed%20up%20/%20slow%20down%20a%20video

引用:

加快/放慢视频速度

您可以使用setpts视频过滤器更改视频的速度。 [...]

要加快视频速度,您可以输入:

ffmpeg -i input.mkv -filter:v "setpts=0.5*PTS" output.mkv

请注意,此方法将丢帧以达到所需的速度。您可以通过指定比输入更高的“输出帧速率”来避免丢帧,例如,从4的输入转换为加速到4x的输出(16 fps):

ffmpeg -i input.mkv -r 16 -filter:v "setpts=0.25*PTS" -an output.mkv

要减慢视频速度,必须使用大于1的乘数:

ffmpeg -i input.mkv -filter:v "setpts=2.0*PTS" output.mkv

1
投票

无法在不影响实际持续时间的情况下更改媒体播放器中显示的持续时间。这是因为玩家自己计算持续时间并且不在实际文件中编码。

© www.soinside.com 2019 - 2024. All rights reserved.