我正在尝试使用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)
谢谢
他们的维基上实际上有一个帖子: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
无法在不影响实际持续时间的情况下更改媒体播放器中显示的持续时间。这是因为玩家自己计算持续时间并且不在实际文件中编码。