【问题标题】:ffmpeg audio and video out of sync when using the raw formatffmpeg 使用 raw 格式时音视频不同步
【发布时间】:2016-07-14 16:02:52
【问题描述】:

我有 2 个 .webm 文件,一个包含视频,另一个包含音频。我需要同步生成一个包含视频和音频的 mp4 文件。这是我尝试做的:

ffmpeg -ss 00:00:00.33 -i user_17624_1-1762.webm -i user_17624_2-1767.webm -r 15 output_good.mp4

-ss by 0.33s 是因为视频在音频之前 0.33s 开始 - 1762 和 1767 是帧号,因此它们相差 5 帧和 15 fps。

这样做,我得到了一个完美的录音,其中视频和音频在整个文件中是同步的。

但问题是,我需要对视频帧进行一些更改,并且我使用 C 应用程序操作原始视频流中的字节,所以我不能这样做,我需要转码首先是 RAW,然后是操作,然后从 raw 编码回 mp4。从链中删除我的 C 应用程序以确保它不是问题,归结为:

ffmpeg -ss 00:00:00.33 -i user_17624_1-1762.webm -an -r 15 -f rawvideo -pix_fmt yuv420p -s 1920x1080 ./video.pipe &
ffmpeg -i user_17624_2-1767.webm -vn -ar 44100 -ac 2 -f s16le -acodec pcm_s16le ./audio.pipe &
ffmpeg -an -r 15 -f rawvideo -pix_fmt yuv420p -s 1920x1080 -i ./video.pipe -vn -ar 44100 -ac 2 -f s16le -acodec pcm_s16le -i ./audio.pipe -r 15 output_bad.mp4

结果是,录制音频和视频彼此相距甚远的地方,并且似乎也在文件持续时间内波动。

这些视频转码我做错了什么?请帮帮我:)

米哈伊尔

【问题讨论】:

  • 当然,我尝试的第一件事是将这些 .webm 文件转换为 mp4,然后使用它们转换为原始文件......这没有帮助。即使使用 -g 1。

标签: video ffmpeg yuv


【解决方案1】:

答案证明很简单,-async 10000

【讨论】:

  • 异步已被弃用,请改用 aresample 过滤器
【解决方案2】:

当我将视频像素格式更改为 yuv420 时,我遇到了类似的问题,但是当我提高帧率时它得到了解决

您可以尝试增加 fps : -帧率 120

【讨论】:

    猜你喜欢
    • 2012-03-16
    • 2016-05-26
    • 2016-05-25
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 2021-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多