使用FFMPEG更改mp4视频时长

时间:2014-06-17 18:03:48

标签: ffmpeg video-processing

我正在尝试使用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)

感谢

2 个答案:

答案 0 :(得分: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变为1,加速到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 :(得分:1)

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