【问题标题】:Change mp4 video duration using FFMPEG使用 FFMPEG 更改 mp4 视频持续时间
【发布时间】:2014-08-07 20:39:23
【问题描述】:

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


    【解决方案1】:

    他们的 wiki 上实际上有一个帖子: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 变为速度高达 4 倍(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
    

    【讨论】:

    • 您好,谢谢,我应该更具体一些。我想编辑视频头文件中的视频长度值,但不改变实际电影。
    • 持续时间是帧数 * 帧率​​。如果要更改持续时间,则需要更改帧速率。这就是你想要的吗?
    • 不,我真的不想改变帧速率。我想这是不可能的,但不这样做。
    • 你的意图是什么?
    【解决方案2】:

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

    【讨论】:

    • 不,可以修改时间码元数据,但并非所有播放器都支持显示它。
    猜你喜欢
    • 2016-12-17
    • 2020-07-31
    • 2015-06-14
    • 2022-11-10
    • 2020-07-29
    • 1970-01-01
    • 2016-06-08
    • 2020-12-11
    • 1970-01-01
    相关资源
    最近更新 更多