AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[video](unix)

Martin Hope
KTorrentNG
Asked: 2023-11-01 23:15:53 +0800 CST

如何使用 ffmpeg 从视频文件中删除不需要的语言?

  • 6

我有许多视频文件(500 多个),其中包含我不需要的语言的大量音频和字幕流,因此希望将其删除以节省存储空间。

我对 进行了修改ffmpeg,但通过处理一个又一个文件来删除流结果非常耗时。脚本编写也没有运气,因为视频文件包含不同顺序的不同流,这使得通过索引删除变得困难且容易出错。

必须有一个既更快又适用于包含不同流的文件的解决方案,对吧?任何帮助将非常感激。

video
  • 1 个回答
  • 33 Views
Martin Hope
showkey
Asked: 2022-05-04 05:29:57 +0800 CST

为什么 rtsp 流可以在 smplayer gui 而不是 cli 中打开?

  • 0

我家 ip camera 的 rtsp url 就是这种格式rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0。我可以用SMPlayergui 窗口打开它。为什么不能用SMPlayercli 打开?

smplayer  rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0

在此处输入图像描述

/usr/bin/mpv --no-config --no-quiet --terminal --no-msg-color --input-ipc-server=/tmp/smplayer-mpv-44c1 --msg-level=ffmpeg/demuxer=error --no-fs --hwdec=no --sub-auto=fuzzy --no-input-default-bindings --input-vo-keyboard=no --no-input-cursor --cursor-autohide=no --no-keepaspect --wid=69206033 --monitorpixelaspect=1 --osd-level=1 --osd-scale=1 --osd-bar-align-y=0.6 --sub-ass --embeddedfonts --sub-ass-line-spacing=0 --sub-scale=1 --sub-font=Arial --sub-color=#ffffffff --sub-shadow-color=#ff000000 --sub-border-color=#ff000000 --sub-border-size=0.75 --sub-shadow-offset=2.5 --sub-font-size=50 --sub-bold=no --sub-italic=no --sub-margin-y=8 --sub-margin-x=20 --sub-codepage=ISO-8859-1 --sub-pos=100 --volume=55 --cache=auto --screenshot-template=cap_%F_%p_%02n --screenshot-format=jpg --screenshot-directory=/home/debian/Pictures/smplayer_screenshots --audio-pitch-correction=yes --volume-max=110 --ytdl --term-playing-msg=MPV_VERSION=${=mpv-version:}
INFO_VIDEO_WIDTH=${=width}
INFO_VIDEO_HEIGHT=${=height}
INFO_VIDEO_ASPECT=${=video-params/aspect}
INFO_VIDEO_FPS=${=container-fps:${=fps}}
INFO_VIDEO_FORMAT=${=video-format}
INFO_VIDEO_CODEC=${=video-codec}
INFO_AUDIO_FORMAT=${=audio-codec-name}
INFO_AUDIO_CODEC=${=audio-codec}
INFO_AUDIO_RATE=${=audio-params/samplerate}
INFO_AUDIO_NCH=${=audio-params/channel-count}
INFO_LENGTH=${=duration:${=length}}
INFO_DEMUXER=${=current-demuxer:${=demuxer}}
INFO_SEEKABLE=${=seekable}
INFO_TITLES=${=disc-titles}
INFO_CHAPTERS=${=chapters}
INFO_TRACKS_COUNT=${=track-list/count}
METADATA_TITLE=${metadata/by-key/title:}
METADATA_ARTIST=${metadata/by-key/artist:}
METADATA_ALBUM=${metadata/by-key/album:}
METADATA_GENRE=${metadata/by-key/genre:}
METADATA_DATE=${metadata/by-key/date:}
METADATA_TRACK=${metadata/by-key/track:}
METADATA_COPYRIGHT=${metadata/by-key/copyright:}
INFO_MEDIA_TITLE=${=media-title:}
INFO_STREAM_PATH=${stream-path}
 --audio-client-name=SMPlayer --term-status-msg=STATUS: ${=time-pos} / ${=duration:${=length:0}} P: ${=pause} B: ${=paused-for-cache} I: ${=core-idle} VB: ${=video-bitrate:0} AB: ${=audio-bitrate:0} 
rtsp://admin:[email protected]:554/cam/realmonitor?channel=1

[ffmpeg/demuxer] rtsp: method DESCRIBE failed: 404 Not Found
[lavf] avformat_open_input() failed
Failed to recognize file format.
Exiting... (Errors when loading file)
video mpv
  • 1 个回答
  • 152 Views
Martin Hope
Lennart Van der Goten
Asked: 2022-01-29 02:24:35 +0800 CST

使用 FFMPEG 和确切的帧数将视频文件分割成块

  • 1

我正在尝试根据固定的帧数(例如)将视频video.avi(N总帧数)拆分为连续的块M = 100。具体来说,这个过程应该产生:

  1. video_0.avi: 帧 0 到M-1
  2. video_1.avi: 帧M到2M-1
  3. video_2.avi: 帧2M到3M-1
  4. ...

重要的是每个块video_*.avi都有精确的M帧。N因此,如果不能被 整除,则可以丢弃最后一个块M。

我发现了相关问题(例如,使用 ffmpeg 将视频文件拆分为片段),但发现自己很难在几秒钟内用帧数替换规范。

video ffmpeg
  • 1 个回答
  • 979 Views
Martin Hope
shirish
Asked: 2022-01-07 11:39:51 +0800 CST

通过 ffmpeg 提取视频会给出不正确的持续时间

  • 1

这是我在 Debian 测试中使用的 ffmpeg 版本 -

$ ffmpeg -version
ffmpeg version 4.4.1-2+b1 Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 11 (Debian 11.2.0-12)
configuration: --prefix=/usr --extra-version=2+b1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil      56. 70.100 / 56. 70.100
libavcodec     58.134.100 / 58.134.100
libavformat    58. 76.100 / 58. 76.100
libavdevice    58. 13.100 / 58. 13.100
libavfilter     7.110.100 /  7.110.100
libswscale      5.  9.100 /  5.  9.100
libswresample   3.  9.100 /  3.  9.100
libpostproc    55.  9.100 / 55.  9.100

这是我试图使用的命令 -

$ ffmpeg -ss 00:22:20 -t 60 -i 123.mkv 456.mkv

这来自从视频文件的特定部分提取/复制音频,可能吗?这是我多年前问过的。

我还看了一下FFMpeg :创建一个大约的视频剪辑。没有音频的视频持续时间未知的 10 秒- 但如果我尝试使用其中显示的时间戳,它会出错说 -

Invalid duration specification for ss: 00:22:20:0.0

我正在播放的媒体文件大约是 50 多分钟,我只想要 22:20 秒和一分钟后的一分钟文件。

ffmpeg 或它处理事物的方式发生了变化。我显然已经更改了文件名。尽管如此,这就是它显示文件的内容,就好像我把它放在 mkvinfo 下一样

$ mkvinfo 456.mkv 
+ EBML head
|+ EBML version: 1
|+ EBML read version: 1
|+ Maximum EBML ID length: 4
|+ Maximum EBML size length: 8
|+ Document type: matroska
|+ Document type version: 4
|+ Document type read version: 2
+ Segment: size 6959454
|+ Seek head (subentries will be skipped)
|+ EBML void: size 81
|+ Segment information
| + Timestamp scale: 1000000
| + Title: 123
| + Multiplexing application: Lavf58.76.100
| + Writing application: Lavf58.76.100
| + Segment UID: 0x19 0xba 0x01 0xe0 0xed 0x6f 0x79 0xef 0xfb 0x9d 0xe6 0xcd 0x2b 0xad 0x2f 0x79
| + Duration: 00:23:54.905000000
|+ Tracks
| + Track
|  + Track number: 1 (track ID for mkvmerge & mkvextract: 0)
|  + Track UID: 4989308985802999081
|  + "Lacing" flag: 0
|  + Name: abcd
|  + Language: und
|  + Codec ID: V_MPEG4/ISO/AVC
|  + Track type: video
|  + Default duration: 00:00:00.041708333 (23.976 frames/fields per second for a video track)
|  + Video track
|   + Pixel width: 1280
|   + Pixel height: 720
|   + Interlaced: 2
|   + Video colour information
|    + Horizontal chroma siting: 1
|    + Vertical chroma siting: 2
|  + Codec's private data: size 45 (H.264 profile: High @L3.1)
| + Track
|  + Track number: 2 (track ID for mkvmerge & mkvextract: 1)
|  + Track UID: 5858605359486045911
|  + "Lacing" flag: 0
|  + Name: abcd
|  + Language: eng
|  + Codec ID: A_VORBIS
|  + Track type: audio
|  + Audio track
|   + Channels: 2
|   + Sampling frequency: 48000
|   + Bit depth: 32
|  + Codec's private data: size 3959
| + Track
|  + Track number: 3 (track ID for mkvmerge & mkvextract: 2)
|  + Track UID: 6757137498994684877
|  + "Lacing" flag: 0
|  + Name: abcd
|  + Language: eng
|  + Codec ID: S_TEXT/ASS
|  + Track type: subtitles
|  + Codec's private data: size 576
|+ Tags
| + Tag
|  + Targets
|  + Simple
|   + Name: COMMENT
|   + String: abcd
|  + Simple
|   + Name: ENCODER
|   + String: Lavf58.76.100
| + Tag
|  + Targets
|   + Track UID: 4989308985802999081
|  + Simple
|   + Name: BPS
|   + String: 1050683
|  + Simple
|   + Name: BPS
|   + Tag language: eng
|   + String: 1050683
|  + Simple
|   + Name: DURATION
|   + Tag language: eng
|   + String: 00:47:01.110000000
|  + Simple
|   + Name: NUMBER_OF_FRAMES
|   + String: 67639
|  + Simple
|   + Name: NUMBER_OF_FRAMES
|   + Tag language: eng
|   + String: 67639
|  + Simple
|   + Name: NUMBER_OF_BYTES
|   + String: 370511729
|  + Simple
|   + Name: NUMBER_OF_BYTES
|   + Tag language: eng
|   + String: 370511729
|  + Simple
|   + Name: _STATISTICS_WRITING_APP
|   + String: mkvmerge v13.0.0 ('The Juggler') 64bit
|  + Simple
|   + Name: _STATISTICS_WRITING_APP
|   + Tag language: eng
|   + String: mkvmerge v13.0.0 ('The Juggler') 64bit
|  + Simple
|   + Name: _STATISTICS_WRITING_DATE_UTC
|   + String: 2018-09-20 14:51:30
|  + Simple
|   + Name: _STATISTICS_WRITING_DATE_UTC
|   + Tag language: eng
|   + String: 2018-09-20 14:51:30
|  + Simple
|   + Name: _STATISTICS_TAGS
|   + String: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
|  + Simple
|   + Name: _STATISTICS_TAGS
|   + Tag language: eng
|   + String: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
|  + Simple
|   + Name: ENCODER
|   + String: Lavc58.134.100 libx264
|  + Simple
|   + Name: DURATION
|   + String: 00:01:00.022000000
| + Tag
|  + Targets
|   + Track UID: 5858605359486045911
|  + Simple
|   + Name: BPS
|   + String: 640000
|  + Simple
|   + Name: BPS
|   + Tag language: eng
|   + String: 640000
|  + Simple
|   + Name: DURATION
|   + Tag language: eng
|   + String: 00:47:01.120000000
|  + Simple
|   + Name: NUMBER_OF_FRAMES
|   + String: 88160
|  + Simple
|   + Name: NUMBER_OF_FRAMES
|   + Tag language: eng
|   + String: 88160
|  + Simple
|   + Name: NUMBER_OF_BYTES
|   + String: 225689600
|  + Simple
|   + Name: NUMBER_OF_BYTES
|   + Tag language: eng
|   + String: 225689600
|  + Simple
|   + Name: _STATISTICS_WRITING_APP
|   + String: mkvmerge v13.0.0 ('The Juggler') 64bit
|  + Simple
|   + Name: _STATISTICS_WRITING_APP
|   + Tag language: eng
|   + String: mkvmerge v13.0.0 ('The Juggler') 64bit
|  + Simple
|   + Name: _STATISTICS_WRITING_DATE_UTC
|   + String: 2018-09-20 14:51:30
|  + Simple
|   + Name: _STATISTICS_WRITING_DATE_UTC
|   + Tag language: eng
|   + String: 2018-09-20 14:51:30
|  + Simple
|   + Name: _STATISTICS_TAGS
|   + String: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
|  + Simple
|   + Name: _STATISTICS_TAGS
|   + Tag language: eng
|   + String: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
|  + Simple
|   + Name: ENCODER
|   + String: Lavc58.134.100 libvorbis
|  + Simple
|   + Name: DURATION
|   + String: 00:01:00.003000000
| + Tag
|  + Targets
|   + Track UID: 6757137498994684877
|  + Simple
|   + Name: BPS
|   + String: 40
|  + Simple
|   + Name: BPS
|   + Tag language: eng
|   + String: 40
|  + Simple
|   + Name: DURATION
|   + Tag language: eng
|   + String: 00:46:08.244000000
|  + Simple
|   + Name: NUMBER_OF_FRAMES
|   + String: 636
|  + Simple
|   + Name: NUMBER_OF_FRAMES
|   + Tag language: eng
|   + String: 636
|  + Simple
|   + Name: NUMBER_OF_BYTES
|   + String: 14113
|  + Simple
|   + Name: NUMBER_OF_BYTES
|   + Tag language: eng
|   + String: 14113
|  + Simple
|   + Name: _STATISTICS_WRITING_APP
|   + String: mkvmerge v13.0.0 ('The Juggler') 64bit
|  + Simple
|   + Name: _STATISTICS_WRITING_APP
|   + Tag language: eng
|   + String: mkvmerge v13.0.0 ('The Juggler') 64bit
|  + Simple
|   + Name: _STATISTICS_WRITING_DATE_UTC
|   + String: 2018-09-20 14:51:30
|  + Simple
|   + Name: _STATISTICS_WRITING_DATE_UTC
|   + Tag language: eng
|   + String: 2018-09-20 14:51:30
|  + Simple
|   + Name: _STATISTICS_TAGS
|   + String: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
|  + Simple
|   + Name: _STATISTICS_TAGS
|   + Tag language: eng
|   + String: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
|  + Simple
|   + Name: ENCODER
|   + String: Lavc58.134.100 ssa
|  + Simple
|   + Name: DURATION
|   + String: 00:23:54.905000000
|+ Cluster

现在我可以从上面推断出,ffmpeg 只是剪切了视频,因此显示了旧版本的属性,包括时间,尽管我创建的媒体文件大约是一分钟。

反正有没有做得更好,这意味着它从今天开始使用 ffmpeg 版本并给出相同的结果,持续时间也会更改为一分钟而不是它显示的 23 分钟?

FWIW,我当前系统中的 mkvmerge 是 -

$ mkvmerge --veion
mkvmerge v64.0.0 ('Willows') 64-bit
debian video
  • 1 个回答
  • 151 Views
Martin Hope
xpt
Asked: 2022-01-03 14:15:20 +0800 CST

通过 ffmpeg 加速视频并没有减小文件大小

  • 0

我正在跟进

加快播放速度
https://trac.ffmpeg.org/wiki/How%20to%20speed%20up%20/%20slow%20down%20a%20video

但是,当我将播放速度提高 1.5 倍时,我预计视频的大小会减少到与/大约相同的水平,然而,这就是我得到的:

-rwxrwxr-x 1 me me 10000000 2021-10-10 16:56 original_video.mp4*
-rwxrwxr-x 1 me me 10060896 2022-01-02 16:27 speed_up_output.mkv*

即,文件大小更大。

是否可以加快播放速度并将视频大小减小到相同程度?

audio video
  • 1 个回答
  • 432 Views
Martin Hope
FGarbuzov
Asked: 2021-11-27 05:12:22 +0800 CST

在 Chrome、Kubuntu 20.04 中启用硬件视频加速

  • 2

简而言之:无法在 Chrome 中启用硬件视频加速。我的台式机集成了 GPU Intel UHD 750 和 Core i5 11600,它运行 Kubuntu 20.04。

最初,我根本没有硬件加速,所以即使是 VLC 播放视频也没有加速,尽管我已经intel-media-va-driver-non-free安装了。的输出vainfo是

libva info: VA-API version 1.7.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_7
libva info: va_openDriver() returns 1
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_6
libva info: va_openDriver() returns -1

我搜索了解决方案,但没有找到有同样问题的人。我决定就相关问题遵循一些建议。首先,我将内核从 5.11 更新到 5.15,但这并没有帮助。然后我添加了一个 repo 来安装英特尔驱动程序的 21.xx 版本,如此处评论中所建议的:https ://githubmemory.com/repo/HaveAGitGat/Tdarr/issues/452 。在升级了一些软件包并安装了一些保留的软件包后,我得到了视频加速。的当前输出vainfo为

libva info: VA-API version 1.12.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_12
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.12 (libva 2.12.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 21.3.3 (6fdf88c)
vainfo: Supported profile and entrypoints
      VAProfileNone                   : VAEntrypointVideoProc
      VAProfileNone                   : VAEntrypointStats

等等。

下一步是在 Chrome 中启用硬件加速。我按照这里的说明https://www.linuxupprising.com/2021/01/how-to-enable-hardware-accelerated.html但没有帮助。该chrome://gpu选项卡显示以下内容

图形功能状态

  • 帆布:仅限软件。禁用硬件加速
  • 画布进程外光栅化:已禁用
  • 合成:仅限软件。禁用硬件加速
  • 多个光栅线程:禁用
  • 进程外光栅化:禁用
  • OpenGL:已禁用
  • 光栅化:仅限软件。禁用硬件加速
  • 原始绘图:已禁用
  • Skia 渲染器:已启用
  • 视频解码:仅限软件。禁用硬件加速
  • Vulkan:已禁用
  • WebGL:已禁用
  • WebGL2:已禁用

检测到的问题

  • 已通过阻止列表、about:flags 或命令行禁用加速视频解码。
    禁用功能:video_decode
  • Gpu 合成已通过阻止列表、about:flags 或命令行禁用。浏览器将退回到软件合成,硬件加速将不可用。
    禁用功能:gpu_compositing
  • GPU 进程无法启动:GPU 进程使用 SwiftShader 崩溃太多次。
    禁用功能:所有
    ...

我还尝试在 Firefox 中启用视频加速,但失败了。此外,我安装了 Chromium,chrome://gpu现在显示几乎所有功能都已启用,但视频加速未启用。

请帮忙!

video chrome
  • 1 个回答
  • 2841 Views
Martin Hope
przemoch
Asked: 2021-10-25 22:21:01 +0800 CST

在没有图形界面的监视器上显示视频

  • 1

我正在使用 Yocto 操作系统(基于 openembedded)的微型计算机,我没有任何图形环境。系统负载很重,我想避免向其添加 GUI。最近,需要将连接到微型计算机 (RTSP) 的摄像机中的视频通过 HDMI 投影到屏幕上。

假设我可以在设备上安装任何应用程序,你知道任何可以让我在屏幕上显示图像的解决方案吗?目前,连接HDMI线后,我看到的只是系统终端。

terminal video
  • 1 个回答
  • 54 Views
Martin Hope
Alexander Czutro
Asked: 2020-01-06 11:56:31 +0800 CST

直观的图像排序

  • 1

我有照片集(每个包含几张照片集),其中所有文件名都是随机的,并且文件已按随机顺序修改,因此按文件名或日期对它们进行排序不会帮助我确定哪些照片属于一起(在一套)。我想要做的是查看所有缩略图,例如桌子上的扑克牌,并独立于文件名或其他排序标准自由移动它们。这样我就可以在这个虚拟桌子上对物理上属于一起(组)的照片进行分组。

有人知道可以帮助我做到这一点的工具吗?我对视频文件也有同样的问题。

files video
  • 1 个回答
  • 49 Views
Martin Hope
porton
Asked: 2020-01-04 19:28:36 +0800 CST

ffmpeg 创建一个损坏的视频

  • 0

此命令创建的视频:

ffmpeg -y -framerate 25 -i picture.png -i sound.wav -vcodec libx264 -crf 20 -preset medium -acodec aac -vf scale=1280:-2,format=yuv420p output.mp4

不被 Amazon Prime 接受(“视频资产:您的夹层文件失败。”)。

如何制作被这样的第三方接受的视频?

video ffmpeg
  • 1 个回答
  • 154 Views
Martin Hope
GNUser
Asked: 2019-11-16 08:42:21 +0800 CST

如何让 linux 用户态应用程序认为笔记本电脑的盖子总是打开的?

  • 3

目标:

我正在尝试使我的 linux 笔记本电脑(带有 Libreboot 的 T400 ThinkPad)无论盖子是打开还是关闭,其行为方式都完全相同。换句话说,我试图模拟一台笔记本电脑的盖子开关坏了,该开关始终处于“盖子打开”位置。我正在寻找一种不需要特定 init 系统或特定电源管理器的低级解决方案——只需要任何 GNU/Linux 系统中预期存在(或可用)的软件。

我的两个操作系统是运行 Xorg 和 Fluxbox 的 Devuan ASCII(64 位)和 Tiny Core Linux 10.1(64 位),以防万一。内核版本为 4.16.2 (Devuan) 和 4.19.10 (Tiny Core Linux)。

测试:

我正在使用 xscreensaver(设置为在 1 分钟不活动后开始播放动画)作为我的测试应用程序,因为我注意到 xscreensaver 在盖子关闭时不会启动并开始播放动画。因此,当我可以合上盖子时,稍等一分钟,重新打开盖子,发现正在播放 xscreensaver 动画,我就知道我找到了解决方案。

到目前为止我尝试了什么:

  1. 机械的。我的笔记本电脑是 T400,它使用蓝牙 LED 上方的小磁铁作为盖子开关。在该位置放置一个小型冰箱磁铁会导致盖子开关卡在“关闭”位置,并且 xscreensaver 测试失败。使用button.lid_init_state=open内核引导参数引导没有帮助。

  2. 按键模块启动参数。这个内置模块是笔记本电脑盖子开关的驱动程序。使用button.lid_report_interval=0或=-1或=500000没有帮助。

  3. i915 模块启动参数。Devuan 中的内核支持i915.panel_ignore_lid引导参数。将其设置为 -2 无助于通过 xscreensaver 测试。

  4. 视频模块启动参数。使用video.report_key_events=0没有帮助。

  5. ACPI。使用acpi=off内核引导参数禁用它无助于通过测试。

  6. 禁用盖子开关。令人惊讶的是,禁用盖子开关并没有帮助。很难禁用按钮模块,因为它内置在内核中(即,它显示为ls /sys/module但不显示为lsmod)。但是,可以在系统启动后取消绑定所有使用按钮模块的设备:

  # 1. find the devices that use the button driver:
$ ls /sys/bus/acpi/drivers/button
LNXPWRBN:00  PNP0C0D:00   PNP0C0E:00   bind         uevent       unbind
  # 2. disable the devices one by one:
$ echo "LNXPWRBN:00" | sudo tee /sys/bus/acpi/drivers/button/unbind
LNXPWRBN:00
$ echo "PNP0C0D:00" | sudo tee /sys/bus/acpi/drivers/button/unbind
PNP0C0D:00
$ echo "PNP0C0E:00" | sudo tee /sys/bus/acpi/drivers/button/unbind
PNP0C0E:00
  # 3. satisfy oneself that the devices are gone:
$ ls /sys/bus/acpi/drivers/button
bind    uevent  unbind

即使这样,xscreensaver 动画会在盖子打开时启动,但不会在盖子关闭时启动。

  1. 捕获触摸板事件。通过观察cat /dev/input/event5的输出,我注意到打开和关闭笔记本电脑盖会导致突触触摸板生成一些输入。使用evtest --grab /dev/input/event5 >/dev/null 获取所有输入并没有帮助。

  2. 告诉X不要挡道。X 启动后,我在引导时以普通用户身份运行这些命令:xset s off; xset -dpms; xset 的 noblank。这些命令告诉 X 我不想要它的空白屏幕屏幕保护程序,我不想要 DPMS,并且它永远不应该使屏幕空白。它没有帮助。

  3. BIOS。我已经搜索了在 BIOS(在我的情况下为 Libreboot)级别禁用盖子开关的方法,但没有找到任何相关的内容。

这就是我到目前为止所尝试的全部。即使结合了以上所有,用户态应用程序(xscreensaver 是它们的代表)仍然会根据笔记本电脑盖是打开还是关闭而表现不同。(在 xscreensaver 的情况下,它只在笔记本电脑盖打开时开始播放动画,而在它关闭时从不播放。)

当然,必须有一种方法可以通过软件完全禁用笔记本电脑的盖子开关,并让用户级应用程序认为笔记本电脑的盖子总是打开的。我错过了什么?

video
  • 1 个回答
  • 423 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve