0

这是我的管道:

gst-launch-1.0 filesrc location="/home/mango/Desktop/gst-test/input.mp3" name=src \
! decodebin \
! audioconvert \
! faac \
! mp4mux \
! filesink location="/home/mango/Desktop/gst-test/output.m4a" \

但是在 2 个最新的 manjaro 安装和 1 个过时的 xubuntu 安装上,它给了我这个“输入缓冲区消失”错误,所以我猜那个管道有问题。使用 avenc_aac 而不是 faac 会产生相同的错误。

Setting pipeline to PAUSED ...
0:00:00.025318250  8742 0x5581248e7f30 WARN                 basesrc gstbasesrc.c:3600:gst_base_src_start_complete:<src> pad not activated yet
Pipeline is PREROLLING ...
0:00:00.042874308  8742 0x7f4e340779e0 FIXME               basesink gstbasesink.c:3246:gst_base_sink_default_event:<filesink0> stream-start event without group-id. Consider implementing group-id handling in the upstream elements
0:00:00.042898718  8742 0x7f4e340779e0 WARN                   qtmux gstqtmux.c:2981:gst_qt_mux_start_file:<mp4mux0> Robust muxing requires reserved-moov-update-period to be set
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
0:00:00.046081143  8742 0x7f4e340779e0 WARN                   libav gstavauddec.c:628:gst_ffmpegauddec_drain:<avdec_mp3-0> send packet failed, could not drain decoder
0:00:00.046300293  8742 0x7f4e340779e0 WARN            audioencoder gstaudioencoder.c:965:gst_audio_encoder_finish_frame:<faac0> Can't copy metadata because input buffer disappeared
Got EOS from element "pipeline0".
Execution ended after 0:00:00.003472255
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

输出文件中没有任何标签

然而,

gst-launch-1.0 filesrc location="/home/mango/Desktop/gst-test/input.mp3" name=src \
! decodebin \
! audioconvert \
! flacenc \
! filesink location="/home/mango/Desktop/gst-test/output.flac" \

工作正常,我得到一个带有标签的 .flac 文件。

如何修复第一个管道以便在 output.m4a 中有标签?

GStreamer 1.16.2

4

1 回答 1

0

https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/759

  • “无法复制元数据,因为输入缓冲区消失”与标签无关,可能已在当前 gstreamer 主服务器中修复
  • ffprobe 显示标签,而 mediainfo-gui 和 ex falso (和 quod libet 两者都是同一个项目或其他东西)不
于 2020-07-03T18:18:10.703 回答