无法在带有 gst-launch-1.0 的 Qemu 的 armv7 上播放 wav 音频
Cannot play wav audio on armv7 with Qemu with gst-launch-1.0
我正在尝试使用 Qt 和 C++ 播放 WAV 音频文件,它失败了,然后我尝试使用 gst-launch-1.0 播放它,它也失败了。这一切都是使用 armv7 工具链和在 QEMU 下运行的。
使用代码C++失败后
QAudioDecoder decoder;
QFileInfo fileInfo(WAV_FILE_NAME);
decoder.setSourceFilename(fileInfo.absoluteFilePath());
decoder.start();
if (decoder.state() == QAudioDecoder::DecodingState)
qDebug() << "Decoding";
它失败并显示错误
0:00:00.167441195 29283 0xf375dc00 WARN basesrc gstbasesrc.c:3583:gst_base_src_start_complete:<source> pad not activated yet
0:00:00.176093619 29283 0xf375dc00 WARN basesrc gstbasesrc.c:3583:gst_base_src_start_complete:<source> pad not activated yet
0:00:00.237290158 29283 0xf37fc660 WARN uridecodebin gsturidecodebin.c:921:unknown_type_cb:<uridecodebin0> warning: No decoder available for type 'audio/x-wav'.
0:00:00.238382698 29283 0xf37fc660 WARN decodebin gstdecodebin2.c:4640:gst_decode_bin_expose:<decodebin0> error: no suitable plugins found:
Missing decoder: WAV (audio/x-wav)
0:00:00.239083745 29283 0xf37fc660 WARN uridecodebin gsturidecodebin.c:988:no_more_pads_full:<uridecodebin0> error: no suitable plugins found:
../../../gst-plugins-base-1.14.4/gst/playback/gstdecodebin2.c(4640): gst_decode_bin_expose (): /GstPlayBin:playbin1/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0:
no suitable plugins found:
Missing decoder: WAV (audio/x-wav)
0:00:00.240739264 29283 0xf37fc660 WARN typefind gsttypefindelement.c:1231:gst_type_find_element_loop:<typefind> error: Internal data stream error.
0:00:00.240853974 29283 0xf37fc660 WARN typefind gsttypefindelement.c:1231:gst_type_find_element_loop:<typefind> error: streaming stopped, reason not-linked (-1)
这就是为什么我尝试使用
./gst-launch-1.0 -v uridecodebin uri=file:///home/vbox/myaudio.wav
然后我也得到了这个错误
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0: source = "(GstFileSrc) source"
/GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = audio/x-wav
Missing element: WAV demuxer
WARNING: from element /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0: No decoder available for type 'audio/x-wav'.
Additional debug info:
../../../gst-plugins-base-1.14.4/gst/playback/gsturidecodebin.c(921): unknown_type_cb (): /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0
ERROR: from element /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0: Your GStreamer installation is missing a plug-in.
Additional debug info:
../../../gst-plugins-base-1.14.4/gst/playback/gsturidecodebin.c(988): no_more_pads_full (): /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0:
no suitable plugins found:
../../../gst-plugins-base-1.14.4/gst/playback/gstdecodebin2.c(4640): gst_decode_bin_expose (): /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0:
no suitable plugins found:
Missing decoder: WAV (audio/x-wav)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
我不确定真正缺少什么。另外,这是 gst-inspect-1.0 的输出
$> ./gst-inspect-1.0 | grep wav
audiovisualizers: wavescope: Waveform oscilloscope
typefindfunctions: application/x-shockwave-flash: swf, swfl
typefindfunctions: audio/x-wav: wav
typefindfunctions: audio/x-wavpack: wv, wvp
typefindfunctions: audio/x-wavpack-correction: wvc
这里可能缺少什么?
"wavparse" 插件应该可用。
相关文章:
- 如果我的手机是 ARMv8,为什么 Android Studio 会C++编译为 ARMv7?
- 无法在带有 gst-launch-1.0 的 Qemu 的 armv7 上播放 wav 音频
- 启用中断时QEMU三重故障
- 如何将双精度类型的鼠标移动 x 和 y 从主机传递到 Qemu 中的虚拟机
- 在 gdb (armv7) 中强制转换无效
- GCC 8 交叉编译器输出 ARMv7 可执行文件而不是 ARMv6
- Valgrind和Qemu-无法检测到内存泄漏
- ld:找不到架构armv7的符号-使用库
- 如果应用程序仅针对 armv7 和 armv7 编译,则在 arm64 设备上运行时,它使用什么大小的数据类型
- 编译适用于Android的英特尔TBB-ARMv7 ARMv8 MIPS
- 从iOS示例项目导入cpp文件时,找不到架构armv7的符号
- 我可以在 BlackBerry 10 中使用 Xcode 编译的 armv7/armv7s .so 库吗?
- 如何在没有 FPU 的情况下使用 ARMv7 编译 Node-v4.2.4
- 构建应用程序时出错:体系结构 armv7 的未定义符号
- 仅使用架构armv7及以上版本将应用程序提交到应用商店
- Apple Mach-O链接器错误(架构armv7的重复符号)
- 用qemu测试自己自制的操作系统.asm/c++
- 无法为arch armv7编译静态库
- 有没有第三方工具可以为armv6/armv7创建静态库?
- letonica 1.69交叉编译iOS (armv7, armv7s和arm64)