ubuntu - 将视频展开(延长)到特定时长

标签 ubuntu video ffmpeg vlc transcoding

关闭。这个问题是off-topic .它目前不接受答案。












想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。


9年前关闭。







Improve this question




VLCFFmpeg (或 AVconv )有任何功能可以将视频的持续时间强制为一定的秒数?

假设我有一个...... 5 分钟的 .mp4 视频(无音频)。有没有办法让上述任何工具将视频“扩展”到更长的持续时间?该视频来自 Power Point 幻灯片,但它太短(运行速度太快,不能这么说)。这个想法将自动插入帧,使其达到指定的持续时间。它看起来很可行(呃……对于像我这样的视频编码/转码新手来说):一个 5 分钟的视频,30fps 意味着我有 9000 帧……为了让它长 10 倍,得到第一个“真实”帧,复制十次,然后得到第二个“真实”帧,复制十次……以此类推。

我使用的是 Ubuntu 12.04,但如果需要,我可以安装/编译任何所需的软件。到目前为止,我有 VLC、AVConv 和 FFmpeg(FFmpeg 在特定文件夹中,所以它不会与 AVConv 冲突)

先感谢您。

最佳答案

ffmpeg 中使用 setpts video filter。简单的例子:

  • 慢速(半速):setpts=PTS*2setpts=PTS/0.5
  • 快速 (2x):setpts=PTS/2setpts=PTS*0.5

  • 视频速度提升 10 倍
    ffmpeg -i input.mp4 -filter_complex "setpts=PTS/10" output.mp4
    
    音频和视频速度提高 10 倍
    对于音频,请使用 atemporubberbandasetrate 音频过滤器。
    ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=PTS/10[v];[0:a]atempo=10[a]" -map "[v]" -map "[a]" output.mp4
    
    匹配视频到音频的持续时间
    在此示例中,audio.wav 持续时间为 30 秒,video.mp4 为 90 秒。
  • Get the duration 的音视频文件:
     ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 audio.wav
     ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 video.mp4
    
  • 使用 setpts 视频过滤器调整视频的持续时间以匹配音频持续时间。
     ffmpeg -i video.mp4 -i audio.wav -filter_complex "[0:v]setpts=PTS*30/90[v]" -map "[v]" -map 1:a -shortest output.mp4
    

  • 使视频适合特定时间
    在此示例中,输入为 120 秒。所需的输出为 30 秒:
  • Get the duration 输入文件:
    ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input.mp4
    
  • 使用 setptsatempo (或 rubberband )过滤器:
    ffmpeg -i input.mp4 -filter_complex "setpts=PTS/(120/30);atempo=120/30" output.mp4
    
  • 关于ubuntu - 将视频展开(延长)到特定时长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60172729/

    相关文章:

    javascript - HTML如何编辑视频的布局

    javascript - chrome html5 视频 buffered.end 事件

    parallel-processing - ffmpeg 和 gnu 并行

    ubuntu - 在 ubuntu 17.04 上从源代码构建 llvm 3.42 失败

    Linux重命名文件为大写

    java - Docker 是否在 VM 之上提供任何内存效率?

    Perl 无法安装 Net::SSL

    linux - 免费/开放 h.264 视频解码库? (非 GPL)

    audio - FFmpeg:在没有 filter_complex 的情况下连接视频文件(包含音频)

    ubuntu - 如何加快视频转换