Linux 开发Qt视频播放器遇到的坑

Ubuntu下编译程序提示缺失decoder

错误信息提示

Warning: "No decoder available for type 'video/x-h264, stream-format=(string)avc, alignment=(string)au, level=(string)3, profile=(string)high, codec_data=(buffer)0164001effe100196764001eacd940c037b0110000030001000003003c0f162d9601000668ebe2cb22c0, max-input-size=(int)36046, width=(int)768, height=(int)432, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, parsed=(boolean)true'."

也就是说缺失视频解码器,造成只有视频播放界面,不能正常播放视频的情况

解决方案

先更新一下源,再安装gstreamer流媒体框架即可

sudo apt-get update
sudo apt-get install gstreamer1.0-libav

最后成功播放视频

scp命令出错

错误信息提示

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
即警告:远程主机标识已更改!

解决方案

移除连接使用的ip地址即可

ssh-keygen -R ipaddr

再次重新执行scp命令即可

嵌入式Qt平台运行可执行文件报错

错误信息提示

QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'

解决方案

vi /etc/profile

# 文件末尾写入两句话
export XDG_RUNTIME_DIR=/usr/lib/
export RUNLEVEL=3

#使能环境变量
source /etc/profile

#最后重新运行可执行文件

找不到.so动态库

错误信息及分析

error while loading shared libraries: libpulse.so.0: cannot open shared object file: No such file or directory

提示找不到libpulse.so.0动态库,不妨用ldd命令查看一下少了哪些动态库
如何使用在开发板上使用ldd命令详见 Arm开发板上使用ldd命令

ldd 可执行文件

在这里插入图片描述
可以看到 libpulse.so.0 => not found 这行报错信息

解决方案

使用scp命令将libpulse.so.0 这个库复制到 /usr/lib 目录下即可

棘手的问题

动态库缺失的问题解决之后,运行我的Qt视频播放器,结果提示

defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"

提示找不到"org.qt-project.qt.mediaplayer"这样一个服务

运行结果就是lcd屏幕上出现的只有播放器的框架和背景,但是没有声音和画面

查阅的一些解决方案

解决QT no service found for – org.qt-project.qt.mediaplayer问题

总结一下:QT的MultiMedia依赖于Gstreamer,所以要交叉编译Gstreamer

然后再将MultiMedia添加进QT配置,接着交叉编译QT,编译好之后的QT的plugins目录下要有文中提到的库文件

交叉编译Gstreamer的方法,码一下 Qt5.9.7交叉编译gstreamer

结果

交叉编译Gstreamer本体已经成功,详见个人博客 arm-linux交叉编译Gstreamer

但是添加Gstreamer进QT配置,再重新编译QT失败,未能生成相关媒体库

QT官方给的一些说明如下

在这里插入图片描述
也就是说要有Qt Multimedia,还需要交叉编译Gstreamer的其他版本,如base good bad ugly,否则光有本体base还是没用

后续等有空再研究如何编译完整的Gstreamer吧,应该能解决这个问题

报错问题

错误信息

xilinx-video amba_pl:xlnx_vipp: dma_alloc_coherent of size 0 failed

大概意思就是分配内存失败了,尚不清楚这是什么信息。应该是没找到相关媒体和设备。
因为在后续的v4l2编程中也遇到过类似报错,排查错误原因就在于找不到相关设备,导致分配0内存

写在最后

仅仅做个记录,有空再解决吧,QT播放视频有其他的方案

### 回答1: Qt 是一个跨平台的应用程序开发框架,能够帮助开发者快速地创建各种类型的应用程序。其中,Qt 视频播放器Qt 框架中的一个重要功能,用于播放各种视频格式的文件。 CSDN 是一个面向程序员的技术社区,提供了丰富的技术资源和交流平台。在 CSDN 上,我们可以找到很多关于 Qt 视频播放器的教程和资料。 Qt 视频播放器通过 Qt 多媒体模块实现视频播放的功能。开发者可以利用 Qt 的多媒体类库,如 QMediaPlayer 和 QVideoWidget,实现视频的播放、暂停、停止、快进、快退等功能。同时,Qt 还提供了对常见视频格式的支持,如 MP4、AVI 等,使开发者可以方便地处理不同格式的视频文件。 在 CSDN 上,我们可以找到很多关于 Qt 视频播放器的教程和示例代码。这些教程和示例代码可以帮助开发者了解 Qt 视频播放器的基本使用方法,学习如何自定义视频播放器的外观和功能,以及如何处理视频播放过程中的各种事件。 通过在 CSDN 上学习和交流,我们可以更好地掌握 Qt 视频播放器开发技术,解决遇到的问题,提高开发效率。同时,CSDN 社区也提供了一个交流平台,我们可以在其中与其他开发者分享经验、交流技术,共同推动 Qt 视频播放器的发展。 综上所述,Qt 视频播放器是通过 Qt 框架实现的功能,用于播放各种视频格式的文件。而 CSDN 则为开发者提供了学习、交流和分享的平台,可以帮助我们更好地学习和使用 Qt 视频播放器。 ### 回答2: QT视频播放器CSDN是一个基于QT开发视频播放器,可以用来播放各种视频文件格式。CSDN是一个开发者社区,提供了各种技术文章和资源,而QT是一款跨平台的GUI开发框架。结合使用这两个工具,可以开发出功能强大的视频播放器QT视频播放器CSDN具有多种功能,包括播放、暂停、快进、快退、调整音量等等。用户可以通过QT提供的UI界面进行操作,也可以通过设置快捷键来进行控制。播放器还支持播放列表功能,可以一次性导入多个视频文件进行连续播放。 开发者可以借助CSDN网站上的各种技术文章和资源,学习和掌握QT开发视频播放器的知识和技巧。CSDN上有很多关于QT的教程和案例,可以帮助开发者了解QT的基本使用方法,并实现各种高级功能。同时,CSDN还提供了丰富的开源项目,开发者可以参考这些项目的源代码,加快开发进程。 在使用过程中,有可能会遇到一些问题。此时,可以在CSDN上提问,寻求其他开发者的帮助和建议。CSDN拥有一个庞大的开发者社区,很多问题都能得到及时解答。通过与其他开发者的交流和分享,可以进一步提升自己的开发水平。 总之,QT视频播放器CSDN是一个非常有用的工具,在开发视频播放器时可以充分利用其中的资源和技术支持,帮助开发者更加高效地完成项目。 ### 回答3: Qt视频播放器是一款基于Qt框架开发的多媒体播放器,它提供了丰富的功能和友好的界面,使得用户可以便捷地播放各种格式的视频文件。 Qt作为一个跨平台的开发框架,可以在各种操作系统上运行,因此Qt视频播放器具备了较好的兼容性。它支持在Windows、macOS和Linux等操作系统上进行编译和部署,让用户能够在不同平台上享受到同样稳定可靠的视频播放体验。 Qt视频播放器拥有清晰的界面和丰富的功能,可以实现基本的视频播放功能,如播放、暂停、快进、快退和音量调节等。此外,它还支持播放列表功能,用户可以将多个视频文件添加到播放列表中,方便地切换不同的视频文件进行观看。 Qt视频播放器也支持对视频的截图操作,用户可以通过简单的操作将正在播放的视频截取下来保存为图片格式。这对于用户来说非常方便,可以用于制作视频封面、保存有趣的场景或做其他用途。 除了基本的视频播放功能外,Qt视频播放器还支持视频格式的转换和编解码功能。用户可以使用该播放器将一个视频文件转换为另一种视频格式,并可以对视频进行编解码的设置,以获得更好的播放效果。 综上所述,Qt视频播放器是一款功能丰富、界面友好并具有较好兼容性的视频播放器。无论是在个人使用还是在开发商用途上,它都能提供稳定、流畅的视频播放体验,深受用户的喜爱。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值