是否可以让 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`