V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
crella
V2EX  ›  问与答

mkv 转码需求

  •  
  •   crella · 2020-02-12 16:10:43 +08:00 · 896 次点击
    这是一个创建于 1749 天前的主题,其中的信息可能已经有所发展或是发生改变。
    mkv 转码需求

    链接是 http://47.98.134.225:96/w/ ,是我买的学生机,临时放一下文件下载而已。

    比如链接里面的 qiaohu-2014.09.mkv ,用 mkvmerge 提取到的音频轨 2014.09.aac ,它在不同的播放软件里面显示不同的时长。

    ffprobe、酷我、mpv 都显示是 13min 的时长;

    goldwave、酷狗都显示是 24min 的时长,且拖动进度条到 13min 以后还能继续播放。

    ffprobe 提示这个 aac 文件:
    [aac @ 0000000000544080] Estimating duration from bitrate, this may be inaccurate

    用 ffmpeg 提取的 aac 和用 mkvmerge 提取的 aac 大小都是一样。

    现在的问题是,我把视频用 x264 压缩了一下,想把压缩后的视频轨和原来的音频轨再合并。用过 mkvtoolnix 合并成新的 mkv,也用过 ffmpeg 直接合并,生成的视频和音频都不是同步的。可以观察 00:10:00 和 00:16:00 的时刻。

    求教应该怎么搞才能使合并后的视频文件是画面和声音同步的?
    3 条回复    2020-02-15 11:40:19 +08:00
    pubby
        1
    pubby  
       2020-02-13 14:22:02 +08:00   ❤️ 1
    前阵子在转一批 wav 文件到 aac 的时候也遇到过时长不对的情况

    后来无意间把转换时的输出文件后缀 .aac 改成 .m4a 就好了

    ffmpeg -loglevel error -nostdin -i audio.wav -c:a aac -b:a 32k -strict experimental -y audio.m4a

    原理未知,仅供参考
    crella
        2
    crella  
    OP
       2020-02-13 16:08:57 +08:00
    @pubby 这个改名的方法在我那里行不通唉~本来以为没人回复就把 apache 关掉省得被挂马。
    crella
        3
    crella  
    OP
       2020-02-15 11:40:19 +08:00
    @pubby 我发现用源文件 mkv 的视频和音频轨重新合并都不会出现问题,但是用 x264 转码后的视频轨和原音频轨合并时,ffmpeg 频繁报错:没有设置 pts 或者 timestamp 什么的,可能是我的 x264 参数没设置好吧,以后只用 ffmpeg 编码 x264 好了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3328 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:25 · PVG 20:25 · LAX 04:25 · JFK 07:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.