这是我的管道:
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