unity在linux环境下videoplayer 无法播放问题解决路径

1、问题

一个项目需要在linux下播放视频,并且视频在机器上,也就是要使用应用外的视频文件进行播放。

视频的格式当前提供的事avi格式,并且使用videoplayer 在windows下播放正常。

但是发出包之后再Ubuntu环境怎么都无法播放。

2、测试环境搭建

刚学unity没几天,为了帮忙解决这个问题,从来没用过videoplayer组件,这次需要搭建一个环境

2.1 创建一个Render texture

右键Assets文件夹或任意文件夹→CreateRender Texture纹理渲染

设置视频的分辨率,也就是视频的大小

2.2、创建image

直接创建一个raw image,并且将render texture 赋值给 Texture

增加videoplayer组件,并设置source为URL(因为要使用机器上的视频文件)

2.3、功能

为了方便控制,在界面上增加一个InputField 和 Text

Inputfield 用来输入路径

Text 显示路径

最终如下图

再写个控制脚本,挂载在Canvas

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.Serialization;
using UnityEngine.UI;
using UnityEngine.UIElements;
using UnityEngine.Video;
using Button = UnityEngine.UI.Button;

public class PlayerVideo : MonoBehaviour
{
    // Start is called before the first frame update

    public Button PlayBtn;

    public VideoPlayer vp;

     public InputField inputField;

     public Text text;
    void Start()
    {
        PlayBtn.onClick.AddListener(() =>
        {
            Application.Quit();
        });
        
        inputField.onEndEdit.AddListener(editFinish);
    }

    public void editFinish(string call)
    {
        var textText = inputField.text;
        
        Debug.Log("-------->"+ textText);

        text.text = textText;
        
        playVideo();
    }
    public void playVideo()
    {
        vp.url = inputField.text;
        vp.Play();
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

3、解决问题

3.1 猜测路径错误

最初猜测是路径错误导致的,查看官方文档

视频源 - Unity 手册

支持3种 :

  • 应用内:这个不符合需求,没测试
  • 本地地址,绝对地址,这个官方的例子file:///home/u1/abc.avi,播放不了,又测试了其他的格式,比如斜杠问题,路径放在附近等等,甚至改了访问权限。都不行!!!,心态崩了
  •  线上地址,将视频放在了线上,依然不能播放,失败,http://localhost:9009/video1_F60.avi

3.2 格式问题

官方文档:视频文件兼容性 - Unity 手册

官方其实说的蛮清楚的,无奈啊,信息都在那,没有视频的知识不太懂。

折腾了一圈路径问题之后,又回到这个文档。

准备拿着给的视频文件转下编码试试

工具:安装ffmpeg,不记得什么时候装的了,只记得装过,想不到今天派上用场了。

转为VP8:

ffmpeg -i input.mp4 -c:v libvpx -b:v 1M -vf "scale=640:360" output.webm

这会将输入视频文件(input.mp4)重新编码为VP8编码的WebM格式(output.webm)。-c:v libvpx选项告诉FFmpeg使用VP8编码器。-b:v 1M指定视频的目标比特率为1 Mbps,设置视频分辨率为640x360。你可以根据需要调整这个值。

将这个视频放到Ubuntu下居然能播放了,问题大概就算解决了。

4、其他的一些命令

这个命令会显示视频文件中第一个视频流的编码器。

ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1 <视频文件路径>

所谓的h264编解码,并不是直接将视频格式,通过h264编解码为视频原始数据流,这种说法是错误的,而是应该将视频格式转换为h264的数据流,然后对h264的数据流进行编解码,得到视频的原始数据流(也就是像素数据)

h264文件是压缩后的数据流文件

ffmpeg -i test.mp4 -c h264 test.h264

5、总结

1、知识背景很重要,没有知识背景,解决问题的办法放在那也不知道怎么解决

2、音视频的编码还是不太了解,需要学习下。

3、大胆猜测,小心求证

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/539422.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

K-means和逻辑回归

逻辑回归 一个事件的几率是该事件发生的概率/该事件不发生的概率&#xff1a;P/&#xff08;1-P&#xff09; 对数几率是&#xff1a;log(P/&#xff08;1-P&#xff09;) **考虑对输入x分类的模型&#xff1a;**log(P/&#xff08;1-P&#xff09;)wx 则 Pexp(wx)/(exp(w*x)…

【线段树】【区间更新】2916. 子数组不同元素数目的平方和 II

算法可以发掘本质&#xff0c;如&#xff1a; 一&#xff0c;若干师傅和徒弟互有好感&#xff0c;有好感的师徒可以结对学习。师傅和徒弟都只能参加一个对子。如何让对子最多。 二&#xff0c;有无限多1X2和2X1的骨牌&#xff0c;某个棋盘若干格子坏了&#xff0c;如何在没有坏…

Spring Boot集成Graphql快速入门Demo

1.Graphql介绍 GraphQL 是一个用于 API 的查询语言&#xff0c;是一个使用基于类型系统来执行查询的服务端运行时&#xff08;类型系统由你的数据定义&#xff09;。GraphQL 并没有和任何特定数据库或者存储引擎绑定&#xff0c;而是依靠你现有的代码和数据支撑。 优势 GraphQL…

贫穷的本质

李永乐 李永乐一个老师 李永乐&#xff0c;男&#xff0c;汉族&#xff0c;1983年出生于吉林省吉林市 [1]&#xff0c;高中数学、物理老师&#xff0c;北京大学物理与经济双学士 [5]&#xff0c;清华大学电子工程系 [5]硕士研究生。 他的解读逻辑比较清晰&#xff0c;更像是用数…

Redis从入门到精通(十五)Redis分布式缓存(三)Redis分片集群的搭建和原理分析

文章目录 前言5.4 分片集群5.4.1 搭建分片集群5.4.2 散列插槽5.4.3 集群伸缩5.4.3.1 需求分析5.4.3.2 创建新的Redis实例5.4.3.3 添加新节点到Redis集群5.4.3.4 转移插槽 5.4.4 故障转移5.4.4.1 自动故障转移5.4.4.2 手动故障转移 5.4.5 RedisTemplate 5.5 小结 前言 Redis分布…

webpack-loader的使用

引入css后执行打包命令 "build": "npx webpack --config wk.config.js"发现报错&#xff1a; webpack默认只能处理js其他的像css,图片都需要借助loader来处理 css-loader loader可以用于对模块的源代码进行转换&#xff0c;可以把css看成一个模块&…

项目管理工具——使用甘特图制定项目计划的详细步骤

甘特图是一种直观的项目管理工具&#xff0c;它有助于我们清晰地展示任务安排、时间管理和项目的进度。以下是使用甘特图制定项目计划的详细步骤&#xff1a; 1、创建项目&#xff1a;首先&#xff0c;在进度猫中创建新的项目&#xff0c;并设置项目的时间、工作日等参数。根据…

Day37|贪心算法part06:738.单调递增的数字、968. 监控二叉树、贪心总结

738. 单调递增的数字 总体思想就是从后往前遍历&#xff0c;比较第i位和第i1位的大小&#xff0c;不符合顺序char[i]减1&#xff0c;i1位填9&#xff0c;找到需要填9的最先位置&#xff0c;然后填9。 class Solution {public int monotoneIncreasingDigits(int n) {String s …

请求分发场景下的鉴权问题

说明&#xff1a;记录一次对请求分发&#xff0c;无法登录系统的问题。 场景 如下&#xff0c;在此结构下&#xff0c;如何判断该用户是已登录的用户&#xff1b; 常规操作&#xff0c;用户登录后给用户发Token&#xff0c;同时将发放的Token存入到Redis中。要求用户后续请求…

halcon domain和region总结

1.domain是什么 在halcon中&#xff0c;ROI(Region Of Interest)被称为图像的域(domain)&#xff08;参考《solution_guide_i.pdf》&#xff09;。这个术语来自数学中的定义域&#xff0c;而图像就是函数&#xff0c;本函数负责将坐标映射到像素值&#xff0c;即f(x) gray这样…

计算机网络——TCP和UDP协议

目录 前言 前篇 引言 TCP与UDP之间的区别 TCP 三次握手 为什么要三次握手而不是两次握手&#xff1f; 丢包问题与乱序问题的解决 四次挥手 为什么客户端需要等待超时时间&#xff1f; UDP协议 TCP和UDP的主要区别 前言 本博客是博主用于复习计算机网络的博客&…

性能测试-数据库优化二(SQL的优化、数据库拆表、分表分区,读写分离、redis)

数据库优化 explain select 重点&#xff1a; type类型&#xff0c;rows行数&#xff0c;extra SQL的优化 在写on语句时&#xff0c;将数据量小的表放左边&#xff0c;大表写右边where后面的条件尽可能用索引字段&#xff0c;复合索引时&#xff0c;最好按复合索引顺序写wh…

NGO-VMD+皮尔逊系数+小波阈值降噪+重构

NGO-VMD皮尔逊系数小波阈值降噪重构 NGO-VMD皮尔逊系数小波阈值降噪重构代码获取戳此处代码获取戳此处 以西储大学轴承数据为例&#xff0c;进行VMD&#xff0c;且采用NGO进行K a参数寻优 并对分解分量计算皮尔逊相关系数筛选含噪声分量&#xff0c;对其进行小波软硬阈值降噪&a…

网络协议——OSPF(开放式最短路径优先)详解

1.什么是OSPF 开放式最短路径优先OSPF 是一种动态的高度可靠和高度可扩展的路由协议&#xff0c;用于构建大型网络中的动态路由系统 2. OSPF的协议号为&#xff1a;89 3. OSPF的特点: OSPF是链路状态协议使用了区域概念&#xff1a;减少路由选择协议对路由器CPU&#xff0c;…

电磁兼容导论翻译疑问

在读电磁兼容导论P71页时&#xff0c;发现在“注意“这句话翻译的和原文有疑问&#xff1a;我的理解是单边幅度谱是双边幅度谱的两倍。请大家帮忙看看应如何翻译。 英文原版&#xff1a;Note that all positive frequency components except the dc component in the two-side…

【计算机毕业设计】基于微信小程序的开发项目150套(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f9e1;今天给大家分享200的微信小程序毕业设计&#xff0c;后台用Java开发&#xff0c;这些项目都经过精心挑选&#xff0c;涵盖了不同的实战主题和用例&#xff0c;可做毕业设…

解决mac本git安装后找不到命令的问题

不熟悉mac配置&#xff0c;折腾了半天&#xff0c;记录一下。 1.问题描述2.解决方法 1.问题描述 从https://sourceforge.net/projects/git-osx-installer/files/下载的git安装包&#xff1a; 安装时提示&#xff1a; 这里的解决办法是按住control键再打开文件安装。 安装完…

Linux内核之互斥锁mutex_init和自旋锁spin_lock区别及用法实例(四十六)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

股权融资成本GLS模型计算

一、模型公式 式中&#xff1a; r 为股权融资成本 P为股价 B为每股净资产 FROE为预测每股净资产收益率 目标&#xff1a;求解股权融资成本r 二、模型口径参考来源 PS&#xff1a;实际以代码为准 ①FROE&#xff08;预测每股净资产收益率&#xff09;: 资本市场开放与…

物联网实战--驱动篇之(五)TEA和AES加密算法

目录 一、前言 二、TEA算法 三、AES算法 四、加解密测试 五、安全性保障 一、前言 物联网的安全性是经常被提及的一个点&#xff0c;如果你的设备之间通讯没有加密的话&#xff0c;那么攻击者很容易就能获取并解析出报文的协议&#xff0c;从而根据攻击者的需要进行设备操…