如何让 Totem 自动适应窗口大小以适应视频大小?

如何让 Totem 自动适应窗口大小以适应视频大小?

是否可以让 Totem 自动调整窗口大小以适应视频大小(而不是相反),就像其他播放器一样?似乎 Totem 将其窗口保持在固定大小并缩放视频以适应窗口,而不是调整窗口大小以适应视频大小。我在首选项中看不到任何可以更改此行为的选项(Ubuntu 20.04)。上次我在 Ubuntu 10.04 中使用 Totem 时,它的行为与预期一致,即窗口大小已调整为视频大小。为什么删除了这个选项?这不合逻辑。

答案1

我向 Totem 提交了一个问题:https://gitlab.gnome.org/GNOME/totem/-/issues/431但开发人员回答说他们不打算恢复此功能。所以我编写了一个简单的 Totem 包装脚本,需要将其设置为打开视频文件的默认应用程序,而不仅仅是 Totem。除非视频非常小(这意味着高度小于约 360 像素,否则 Totem 窗口不会变得太小),否则它会调整窗口大小以适应正确的视频大小。该脚本需要安装“mediainfo”程序。

#!/bin/sh

CFG_DIR=~/.config/totem
CFG_FILE=${CFG_DIR}/state.ini
TMP_FILE=/tmp/_mediainfo.$$

if [ -n "$1" ]; then
  if [ ! -d $CFG_DIR ]; then
    mkdir -p $CFG_DIR
  fi
  if [ -f $CFG_FILE ]; then
    MAX=`grep maximised $CFG_FILE`
  else
    MAX="maximised=false"
  fi
  if [ -f "$1" ]; then
    mediainfo "$1" > $TMP_FILE
    V_WIDTH=`grep '^Width' $TMP_FILE | sed 's/Width.*: //;s/ pix.*$//;s/ //g'`
    V_HEIGHT=`grep '^Height' $TMP_FILE | sed 's/Height.*: //;s/ pix.*$//;s/ //g'`
    # 720x576 videos with 16:9 AR are special
    if [ "$V_WIDTH" = "720" -a "$V_HEIGHT" = "576" ] && { grep '^Display aspect ratio.*: 16:9' $TMP_FILE >/dev/null ; } then
      V_WIDTH=1024
    fi
    echo "[State]" > $CFG_FILE
    echo "window_w=$V_WIDTH" >>$CFG_FILE
    echo "window_h=$V_HEIGHT" >>$CFG_FILE
    echo "${MAX}" >> $CFG_FILE
  fi
fi

totem "$1"

编辑:当文件包含多个视频流时,上述脚本会出现问题。要解决此问题,请在以和head -1开头的行末尾添加:V_WIDTH=V_HEIGHT=

    V_WIDTH=`grep '^Width' $TMP_FILE | sed 's/Width.*: //;s/ pix.*$//;s/ //g' | head -1`
    V_HEIGHT=`grep '^Height' $TMP_FILE | sed 's/Height.*: //;s/ pix.*$//;s/ //g' | head -1`

相关内容