ffmpeg - 合并图像和音频时,音频会缩短

Posted

技术标签:

【中文标题】ffmpeg - 合并图像和音频时,音频会缩短【英文标题】:ffmpeg - when merging an image and audio, audio gets shortened 【发布时间】:2014-08-25 16:30:46 【问题描述】:

我正在尝试将 png 图像与 11 秒的音频合并并创建一个 mp4 文件。当我执行 ffmpeg 时,mp4 文件的总持续时间为 10 秒。我正在使用的命令是...

ffmpeg -r 6 -loop 1 -i "image1.png" -i "audio1.wav" out.mp4

更新:这是生成的日志...

FFmpeg version SVN-r15986, Copyright (c) 2000-2008 Fabrice Bellard, et al.
  configuration: --extra-cflags=-fno-common --enable-memalign-hack --enable-pthr
  eads --enable-libmp3lame --enable-libxvid --enable-libvorbis --enable-libtheora
  --enable-libspeex --enable-libfaac --enable-libgsm --enable-libx264 --enable-lib
schroedinger --enable-avisynth --enable-swscale --enable-gpl
      libavutil     49.12. 0 / 49.12. 0
      libavcodec    52. 6. 0 / 52. 6. 0
      libavformat   52.23. 1 / 52.23. 1
      libavdevice   52. 1. 0 / 52. 1. 0
      libswscale     0. 6. 1 /  0. 6. 1
      built on Dec  3 2008 01:59:37, gcc: 4.2.4
Input #0, image2, from 'image1.png':
Duration: 00:00:00.16, start: 0.000000, bitrate: N/A
Stream #0.0: Video: png, rgb32, 400x300,  6.00 tb(r)
Input #1, wav, from 'audio1.wav':
  Duration: 00:00:11.07, bitrate: 88 kb/s
    Stream #1.0: Audio: pcm_u8, 11025 Hz, mono, s16, 88 kb/s
File 'out.mp4' already exists. Overwrite ? [y/N] y
Output #0, mp4, to 'out.mp4':
    Stream #0.0: Video: mpeg4, yuv420p, 400x300, q=2-31, 200 kb/s,  6.00 tb(c)
    Stream #0.1: Audio: libfaac, 11025 Hz, mono, s16, 64 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #1.0 -> #0.1
Press [q] to stop encoding
frame=    1 fps=  0 q=4.1 Lsize=      42kB time=0.17 bitrate=2063.7kbits/s
video:14kB audio:26kB global headers:0.kB muxing overhead 4.894235%

我也试过

ffmpeg -loop 1 -i "image1.png" -i "audio1.wav" -t 11 out.mp4

此命令确实会创建 11 秒的 mp4,但音频仍会在 10 秒时被切断。

为什么音频在 10 秒时被切断?

谢谢, 加里

【问题讨论】:

SVN-r15986 绝对古老且不受支持。到目前为止,自您的版本以来,FFmpeg 已有 49902 次更新。请参阅FFmpeg Download 页面。 【参考方案1】:

一种可能的情况是您的音频文件只有 10 秒长。 你确定你会丢失一整秒的音频吗?也许只是几毫秒就可能导致一些舍入问题?您可以通过运行来检查这一点

ffprobe "audio1.wav"

然后

ffprobe "out.mp4"

添加一些编解码器/比特率选项(例如 -c:a copy -b:a copy)可能会有所帮助

【讨论】:

out.mp4 的 ffprobe 长度为 10.78 秒,audio1.wav 为 11.07。所以它大约短了 0.5 秒。

以上是关于ffmpeg - 合并图像和音频时,音频会缩短的主要内容,如果未能解决你的问题,请参考以下文章

aforge.video.ffmpeg 支持音频吗

ffmpeg 波形音频和 avi 视频格式合并

如何在ffmpeg中合并音频和两个视频文件?

使用 ffmpeg 合并视频和音频。循环播放视频和音频[关闭]

ffmpeg合并音频和视频

在 C# 中使用 FFMPEG 合并音频和视频文件