8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

FFmpeg 安装后 Moviepy 没有更新 FFmpeg 版本?

scibuff 2月前

185 0

我正在尝试使用 Unity 中的 C# 检测鼠标是否位于 hud 元素上。我的 hud 元素占据了屏幕右侧约 1/5 的区域。我基本上想要执行 if mouse.x < hud_element....

我正在尝试使用 C# 在 Unity 中检测鼠标是否位于 hud 元素上。

我的 hud 元素占据了屏幕右侧约 1/5 的区域。

我基本上想做

if mouse.x < hud_element.x

如果我单击此处(HUD 面板左侧仅几个像素处的红色 x)

example of click

我有这个功能(我放了几个 Debug.Log 来解决一些问题)

        public bool is_mouse_left_of_hud() 
    {
        Vector3 mousePos = Input.mousePosition;
        float canvas_left = GameObject.Find("Canvas").GetComponent<RectTransform>().offsetMin.x;
        float main_hud_panel_left = GameObject.Find("main_hud_panel").GetComponent<RectTransform>().anchoredPosition.x;
        float info_panel = GameObject.Find("info panel").GetComponent<RectTransform>().offsetMin.x;
        Debug.Log("££££££££");
        Debug.Log("mouse x pos = " + mousePos.x);
        Debug.Log("main_hud_panel_left = " + main_hud_panel_left);
        Debug.Log("canvas offsetmin x = "+canvas_left);
        Debug.Log("info_panel offset = " + info_panel);
        Debug.Log("main hud offsetmin x + canvas offsetmin x + + info_panel offset = " + ( canvas_left +main_hud_panel_left + info_panel));
        if (mousePos.x < (canvas_left + main_hud_panel_left + info_panel))
        {
            return true;
        }
        return false;
    }

然后单击图像上的红色 x 位置,我得到此输出

££££££££
mouse x pos = 1299.395
main_hud_panel_left = 331
canvas offsetmin x = 560
info_panel offset = 0
main hud offsetmin x + canvas offsetmin x + + info_panel offset = 891

下图显示了编辑器 UI 中的 hud 元素。

element from editor ui

ps)我这样做的原因是:我使用内置的 OnMouseDown 函数来检查 GameObjects 中的点击检测。但令人讨厌的是,这通过我的 hud 起作用。所以我需要一个函数来检查鼠标是否在 hud 上。这样我就可以避免通过 hud 点击

这里还有通向“信息面板”的对象树以及检查器中的值

enter image description here

帖子版权声明 1、本帖标题:FFmpeg 安装后 Moviepy 没有更新 FFmpeg 版本?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由scibuff在本站《ubuntu》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我的矩形使用什么值?我的鼠标位于 1200,添加所有其他值甚至都达不到这个值。

  • 在我看来,HUD 元素就像一个矩形。它有一个位置 (x,y) 和尺寸 (w,h)。鼠标位置是一个点。答案:“点在矩形中”。然后几何图形会带你到其他地方。

  • 你没有看数字。这不合逻辑,否则就说... if (mouse.x < hud_pos.x) 会起作用

  • 我需要一个功能来检查鼠标是否位于 HUD 上方。

    如果您需要知道您是否正在单击 UI 对象,我认为 IsPointerOverGameObject 会对您有所帮助。

    如果您想知道与屏幕相关的点击位置,您可以使用以下功能:

    • p3

      p4

    • p5

      p6

    • p7

      p8

  • 我一直在玩 MoviePy,最近把一个项目转移到了家里的新电脑上,继续摆弄它。然而,我尝试运行我之前编写的程序(运行

    我一直在摆弄 MoviePy,最近把一个项目转移到了家里的一台新电脑上,继续摆弄它。然而,我尝试运行我之前编写的程序(在另一台电脑上运行得很好),结果如下:

    OSError: MoviePy error: failed to read the first frame of video file ./Gameplay/minecraft-
    gameplay2.mp4. That might mean that the file is corrupted. That may also mean that you are using 
    a deprecated version of FFMPEG. On Ubuntu/Debian for instance the version in the repos is 
    deprecated. Please update to a recent version from the website.
    
    

    阅读错误后,我按照它的指示进行操作,并更新了我的 FFmpeg:

    $ ffmpeg
    ffmpeg version N-115387-g8e27bd025f-20240525 Copyright (c) 2000-2024 the FFmpeg developers
      built with gcc 13.2.0 (crosstool-NG 1.26.0.65_ecc5e41)
      configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-ffbuild-linux-gnu- --arch=x86_64 --target-os=linux --enable-gpl --enable-version3 --disable-debug --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-openssl --enable-fontconfig --enable-libharfbuzz --enable-libvorbis --enable-opencl --enable-libpulse --enable-libvmaf --enable-libxcb --enable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-chromaprint --enable-libdav1d --enable-libdavs2 --enable-libdvdread --enable-libdvdnav --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-libkvazaar --enable-libaribcaption --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libvpl --enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --disable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --enable-libdrm --enable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-libs='-ldl -lgomp' --extra-ldflags=-pthread --extra-ldexeflags=-pie --cc=x86_64-ffbuild-linux-gnu-gcc --cxx=x86_64-ffbuild-linux-gnu-g++ --ar=x86_64-ffbuild-linux-gnu-gcc-ar --ranlib=x86_64-ffbuild-linux-gnu-gcc-ranlib --nm=x86_64-ffbuild-linux-gnu-gcc-nm --extra-version=20240525
      libavutil      59. 20.100 / 59. 20.100
      libavcodec     61.  5.104 / 61.  5.104
      libavformat    61.  3.104 / 61.  3.104
      libavdevice    61.  2.100 / 61.  2.100
      libavfilter    10.  2.102 / 10.  2.102
      libswscale      8.  2.100 /  8.  2.100
      libswresample   5.  2.100 /  5.  2.100
      libpostproc    58.  2.100 / 58.  2.100
    Universal media converter
    usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
    

    我继续收到相同的错误。所以我查看了我的 moviepy 使用的版本,它仍然是 4.X。我在某处读到你的 FFmpeg 版本是在第一次使用时确定的,这是有道理的,所以我卸载并重新安装,但仍然收到相同的错误。

    老实说,我现在很迷茫,因为我有最新版本的 FFmpeg,但我仍然从 moviepy 中得到这个:

    >>> import moviepy
    >>> print(moviepy.config.FFPMEG_BINARY)
    ffmpeg : /home/<username>/.local/lib/python3.9/site-packages/imageio_ffmpeg/binaries/ffmpeg-linux64-v4.2.2
    

    关于我做错什么有什么想法吗?

    (注意:我正在使用 Crostini,我相信它使用的是 Ubuntu 或类似 Ubuntu 的 shell)

    谢谢 :)

  • 该消息告诉您哪里出了问题:二进制文件不是您的 ffmpeg 系统副本,而是您的主目录下的一个单独的可执行文件(从安全角度来看,这不是一个好的做法,因为无论下载和安装什么二进制文件都不受您的发行版的 QA、代码签名和类似措施的约束)。

  • @CharlesDuffy 谢谢?这是非常有用的信息……但这不是我所要求的,我正在尝试更新 MoviePy FFmpeg 版本,我的系统的 FFmpeg 版本已经更新

  • 一旦安装了 ImageMagick,MoviePy 就会自动检测它,但特定操作系统下的某些开发人员除外:

    对于 Windows 用户,您也可以从 moviepy 配置文件中设置变量 IMAGEMAGICK_BINARY。为避免这样做,请确保在安装向导中选中“安装旧版实用程序”。

    对于 ubuntu 用户(≥ 19.04),您可能已经从 apt://imagemagick(或通过 apt install 命令行)安装,那么您需要从位于 /etc/ImageMagick/policy.xml 的安全策略文件中禁用此行。

    MoviePy 还依赖于 Python 模块 Numpy、imageio、Decorator 和 tq​​dm,这些模块将在 MoviePy 安装期间自动安装,但它还需要额外的通用库,如 PIL、FFMPEG 以满足特定用例……

    告诉我是否有帮助(不太确定)

  • 我看到 moviePy 配置看起来格式正确,而且我认为您的文件没有损坏,也许是权限问题,您试过这个吗?确保您的脚本具有读取视频文件和访问 FFmpeg 二进制文件的必要权限。

  • 引用 11

    我已经在我的 VPS 服务器中安装了 imagemagick 扩展。它完全可以与 php cli 配合使用。运行 php -i 时显示扩展已成功启用,但在 php82-fpm 中,扩展...

    我已经在我的 VPS 服务器中安装了 imagemagick 扩展。它与 php cli 完全兼容。

    运行 php -i 显示扩展已成功启用,但是在 php82-fpm 中未加载扩展。

    我正在检查这个回显 phpmyinfo() 并且它也没有显示扩展,依赖于扩展的其他功能不是通过 nginx 服务器加载,而是通过命令行 php 界面工作。

  • 我是 Unity 新手,正在创建一款乒乓球风格的游戏进行练习。球每次击中冰球时都应该加速,但实际上它却失去了速度。有什么解决办法吗?使用 TMPro;使用 System。

    我是 Unity 新手,正在创建一款乒乓球风格的游戏进行练习。球每次击中冰球时都应该加速,但实际上它却失去了速度。有什么解决办法吗?

    using TMPro;
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;
    
    public class ballscript : MonoBehaviour
    {
        public Rigidbody2D rb;
        [SerializeField] private float initialspeed = 10;
        [SerializeField] private float speedinc = 0.25f;
        [SerializeField] private TextMeshProUGUI score;
        private int hitcount;
        // Start is called once before the first execution of Update after the MonoBehaviour is created
        void Start()
        {
            hitcount = 0;
            Invoke("StartBall", 2f);  
        }
    
        // Update is called once per frame
        void FixedUpdate()
        {
            rb.velocity = Vector2.ClampMagnitude(rb.velocity, + (speedinc * hitcount));
            print(rb.velocity); //check velocity
    
        }
        void StartBall()
        {
            rb.velocity = new Vector2(-1, 0) * (initialspeed + speedinc * hitcount);
        }
        private void OnCollisionEnter2D(Collision2D collision)
        {
            if (collision.gameObject.name == "puck") 
            {
                hitcount += 1;
            }
        }
    
    }
    

    我尝试按照教程操作,但没有帮助,我还尝试更改 speedinc 和 initialspeed 的值

  • 固定更新中的代码无法提高球的速度,因为 ClampMagnitude 函数只能通过设置限制来降低球的速度。要提高球的速度,您可以在 OnCollisionExit2D 函数中缩放球的速度,以在球离开冰球时加速,代码如下:

    void OnCollisionExit2D(Collision2D other)
    {
        if (collision.gameObject.name == "puck") 
        {
            rb.velocity *= (1 + speedinc);
        }
    }    
    

    为了保证速度缩放能够正常工作,碰撞后的速度不能为零。为了防止这种情况发生,您可以添加物理材质 2D 并将弹跳度值设置为大于零,以保证速度增加能够正常工作。

  • 当不使用 Visual Studio Code 中的选项卡时,它仍会显示一个带有当前打开文件名称的栏。编辑器标题栏有没有办法完全禁用这个栏?

    当不在 Visual Studio Code 中使用选项卡时,它仍会显示一个带有当前打开文件名称的栏。

    编辑器标题栏

    有没有什么办法可以彻底禁用这个栏?

  • Nip 2月前 0 只看Ta
    引用 15

    您可以使用此设置隐藏标题栏: "window.titleBarStyle": "custom" 。可以通过菜单 文件 首选项 设置 窗口 标题栏样式 并将其设置为自定义。

  • \'Window\' (版本 1.47.3) 有 34 个匹配项。\'Title Bar Style\' 位于向下 2/3 处(需要滚动)。

  • 我有 Jammy,我想要的 build-essential 版本是 Buster 发布的版本,这是我尝试做的:我去了 https://gist.github.com/ishad0w/6ce1eb569c734880200c47923577426a 并且......

    我有 Jammy,我想要的 build-essential 版本是 Buster 发布的版本

    这是我尝试做的事情:我去了 https://gist.github.com/ishad0w/6ce1eb569c734880200c47923577426a 并在 /etc/apt 中添加了一个名为 sources.list 的新文件来添加新源,以便 apt 可以在这里搜索 buster 包

    然后我尝试:

    aptitude --download-only install build-essential=version
    

    但无法找到该版本(如果不指定版本,则会安装 jammy 的默认 build-essential。当我访问 https://packages.debian.org/search?suite=buster&searchon=names&keywords=build-essential ,我发现它是 12.6,但是

     aptitude --download-only install build-essential=12.6 
    

    没有找到该版本的任何软件包:

    无法找到软件包“build-essential”的版本“12.6”无法应用某些操作,正在中止

    我如何找到 buster 的 build-essential 版本,以便我可以将其 deb 和依赖项下载到我的机器上?

  • 截至今天,这不会隐藏标题栏,但实际上将其设置为自定义样式,看起来有点像窗口(Manjaro Gnome 上的 VSCodium v​​1.56.2)

  • 目前,这还不起作用,至少对于 Linux Mint 来说是这样。它只是改变了样式。

  • SIDU 2月前 0 只看Ta
    引用 20

    我尝试了上述所有技巧,但都无法隐藏窗口标题栏。

    不过,我确实找到了一个解决方案,这里: https://github.com/microsoft/vscode/issues/174903#issuecomment-1762118744

    (以及该主题中上述 ryanberckmans 的回复)

    它涉及使用 apc customize++ 插件到 vs code 并添加设置来控制它,到您的用户 settings.json。

    该线程至少有两个不同的设置建议,对我来说,我链接到的那个有效(他在回复末尾链接到他的设置文件)。

    所以:

    1. 安装 vs code 扩展 Apc 自定义 UI++
    2. 将其添加到您的用户 settings.json 文件中:

      // ================================================================================
      // APC - UI Customizer
      // ================================================================================
      "window.titleBarStyle": "native",
      "apc.menubar.compact": true,
      "apc.electron": {
        "frame": false,
        "titleBarStyle": "hidden"
      },
      "apc.header": {
        "height": 37
      },
      "apc.sidebar.titlebar": {
        "height": 37
      },
      "apc.activityBar": {
        "size": 40,
        "itemSize": 40,
        "itemMargin": 0
      },
      "apc.stylesheet": {
        ".title-label": "display: none !important",
        ".composite.title": "display: block !important",
        ".monaco-workbench .part.sidebar .title-actions .actions-container": "justify-content: space-evenly !important"
      }

    我还隐藏了标签和菜单栏。这带来了一个问题,因为我根本无法调用菜单栏(即 alt-f 不起作用)。因此,这是一个考虑因素,您只能使用 ctrl-shift-p。

    希望这能帮助到别人!BR!/mawi

返回
作者最近主题: