可能的 ffmpeg 处理错误,音频文件比混合视频文件长,--shortest 标志似乎不起作用,音频无法播放

可能的 ffmpeg 处理错误,音频文件比混合视频文件长,--shortest 标志似乎不起作用,音频无法播放

请参阅此处提出的问题。

如何使用 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 无法正确多路复用流?

请记住流的长度是不同的。音频比视频长约一分钟。

相关内容