请参阅此处提出的问题。
如何使用 ffmpeg 合并不同长度的音频和视频流,修剪音频以适合视频
ffmpeg 正在创建输出,音频文件本身播放,视频本身播放。
但输出文件没有声音。ffmpeg 没有抛出任何错误。
Linux 中最完整的两个视频播放器 vlc 和 mplayer 都没有从输出中产生声音。mp4
但两者都创造了一些有趣的输出。
在 vlc 上输出以下内容:
[00
007f12500065a0] glconv_vaapi_drm gl error: vaInitialize: unknown libva error
libva info: VA-API version 1.16.0
libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
libva info: va_openDriver() returns -1
[00007f12500065a0] glconv_vaapi_drm gl error: vaInitialize: unknown libva error
[00007f12500065a0] gl gl: Initialized libplacebo v4.208.0 (API v208)
Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
[00007f12500065a0] gl gl: Initialized libplacebo v4.208.0 (API v208)
[h264 @ 0x7f126cdf32c0] get_buffer() failed
[h264 @ 0x7f126cdf32c0] thread_get_buffer() failed
[h264 @ 0x7f126cdf32c0] decode_slice_header error
[h264 @ 0x7f126cdf32c0] no frame!
[h264 @ 0x7f126ce10040] get_buffer() failed
[h264 @ 0x7f126ce10040] thread_get_buffer() failed
[h264 @ 0x7f126ce10040] decode_slice_header error
[h264 @ 0x7f126ce10040] no frame!
[h264 @ 0x7f126ce2cdc0] get_buffer() failed
[h264 @ 0x7f126ce2cdc0] thread_get_buffer() failed
[h264 @ 0x7f126ce2cdc0] decode_slice_header error
[h264 @ 0x7f126ce2cdc0] no frame!
[h264 @ 0x7f126cdf32c0] get_buffer() failed
[h264 @ 0x7f126cdf32c0] thread_get_buffer() failed
[h264 @ 0x7f126cdf32c0] decode_slice_header error
[h264 @ 0x7f126cdf32c0] no frame!
[h264 @ 0x7f126ce10040] get_buffer() failed
[h264 @ 0x7f126ce10040] thread_get_buffer() failed
[h264 @ 0x7f126ce10040] decode_slice_header error
[h264 @ 0x7f126ce10040] no frame!
[h264 @ 0x7f126ce2cdc0] get_buffer() failed
[h264 @ 0x7f126ce2cdc0] thread_get_buffer() failed
[h264 @ 0x7f126ce2cdc0] decode_slice_header error
[h264 @ 0x7f126ce2cdc0] no frame!
在 Mplayer 上输出以下内容:
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
[aac @ 0x7fb5c71d39e0]Multiple frames in a packet.
AUDIO: 48000 Hz, 2 ch, floatle, 2.3 kbit/0.07% (ratio: 284->384000)
Selected audio codec: [ffaac] afm: ffmpeg (FFmpeg AAC (MPEG-2/MPEG-4 Audio))
==========================================================================
AO: [pulse] 48000Hz 2ch floatle (4 bytes per sample)
Starting playback...
[aac @ 0x7fb5c71d39e0]channel element 0.0 duplicate
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
VO: [xv] 1092x614 => 1092x614 Planar YV12
A: 10.4 V: 10.4 A-V: 0.000 ct: -0.021 0/ 0 12% 2% 0.9% 1 0
Exiting... (Quit)
这些错误都与音频无关。Libplacebo 和 libva 显然是视频渲染。
在 Mplayer 中,流正在被加载。
什么原因导致 ffmpeg 无法正确多路复用流?
请记住流的长度是不同的。音频比视频长约一分钟。