Czy mogę zobaczyć obrazy i filmy w emulatorze terminala


13

Czy mogę oglądać obrazy i oglądać filmy w emulatorze terminali? W przypadku konsoli wirtualnej mogę to zrobić za pomocą bufora ramki, ale co z emulatorami terminali?


Wygląda na to, że szukasz aplikacji wymienionych w tym
slm

Odpowiedzi:


6

Terminologia

jest tym, czego chcesz.

Na przykład - chcę zmienić tło mojego terminala?

printf '\033}bp%s\000' \
  'http://hdwalldesktops.com/wp-content/uploads/2014/02/background-backgrounds-high-resolution-abstract-picture-background-wallpaper.jpg'

Co to robi?

Emuluje nieco rozszerzone vt100 z kilkoma rozszerzeniami i wtopieniem.

> Most escapes supported by xterm, rxvt etc. work

> Xterm 256 color escapes work

> Backgrounds (bitmap, scalable/vector, animated gif, videos)

> Transparency

> Bitmap and scalable fonts supported

> Themes for the layout and design

> URL, file path and email address detection and link-handling

> Inline display of link content

> Multiple copy and paste selections and buffer support

> Works in X11

> Works in Wayland

> Works directly in the linux framebuffer (fbcon)

> Can be finger/touch controlled

> Scan scale by UI scaling factors

> Can render using OpenGL or OpenGL-ES2 (not a requirement - just an 
option)

> Can display inlined media content (images, video, documents)

> Can do multiple "tabs"

> Can do splitting into multiple panes

> Block text selection

> Drag and drop of text selections and links

> Can stream media from URLs

> Tab switcher has live thumbnail content

> Single process, multiple windows/terminals support

> Fast (gives urxvt a run for its money)

> Themable visual bell

> Compress backscroll

> Text reflow on resize

> Color palette selection

> More...

Widzisz to powyżej? Robi to w buforze ramki.


5

Wiele emulatorów terminali obsługuje grafikę Sixel , ze strony github PySixel lista jest następująca:

  • RLogin
  • tanasinn
  • mlterm
  • XTerm
  • DECterm
  • Kermit
  • Odbicie WRQ
  • ZSTEM

Możesz wyświetlać obrazy z wyżej wymienionym PySixel , który wydaje się być w stanie dokonać niezbędnych konwersji. Inną opcją jest użycie narzędzi z netpbm. Miałem dobre wyniki, wykorzystując poniższe do konwersji i wyświetlania obrazu JPEG na mlterm:

jpegtopnm image.jpg | pnmquant 256 | ppmtosixel >/dev/tty

Wynik:

mlterm wyświetla obraz Sixela

XTerm może również wyświetlać obrazy Sixel, chociaż obsługa jest obecnie ograniczona do 16 kolorów (i jest również wadliwa). Archiwum zawierające przykładowe obrazy można pobrać tutaj , chociaż skrypty wydają się być uszkodzone. XTerm nie wyświetla dokładnego formatu wyjściowego według ppmtosixel(nie obsługuje sekwencji sterujących używanych na początku / na końcu). Przed znalezieniem PySixelużyłem następującego skryptu, aby zhakować dane ppmtosixelwyjściowe w coś, co wyświetli XTerm:

#!/bin/bash

echo -e '\eP0;0;0;q"1;2;400;400'
jpegtopnm "$1" |
  pnmquant 16 |
  ppmtosixel |
  tail -n +2 | 
  head -c -3
echo -e '\x1b\x5c\x0d'
tput cup "$(tput lines)" 0

Obrazy nie będą wyświetlane w domyślnym trybie VT420. Wyświetlane będą tylko w trybach VT240, VT241, VT330 lub VT340. --enable-sixel-graphicsWymagana jest również opcja kompilacji. Najlepsze wyniki uzyskałem dzięki VT340 ( xterm -ti vt340). Oto wyniki (pierwszy to bardzo fajny obraz tron ​​z przykładowego archiwum):

wprowadź opis zdjęcia tutaj


1
Twój skrypt nie jest dokładnie niezawodny w przypadku echa, głowy i ogona. Problem, z którym próbujesz walczyć, polega na tym, że xterm w trybie utf8 ma problemy z 8-bitowymi kodami C1. Na szczęście kody c1 mogą być również kodowane 7-bitowo. perl -wpe 'use bytes;s!([\x80-\x9f])!qq(\e).chr(ord($1)-64)!ge'działa jako świetny filtr po ppmtosixel (i za każdym razem, gdy chcesz zmienić 8-bitowe kody c1 na ich 7-bitowe odpowiedniki).
Hildred

Czy jest coś takiego dla konsoli lub innych nowoczesnych emulatorów terminali?
ctrl-alt-delor


1

Tak, w pewnym sensie. Na przykład Mplayer obsługuje rendering wideo aalib (monochromatyczny) i libcaca (kolorowy) w terminalu tekstowym. To nie jest dokładnie wysoka rozdzielczość, ale zarówno renderowanie subpikselowe, jak i dithering czasowy zwiększają efektywną rozdzielczość, zazwyczaj można powiedzieć, co się dzieje.


0

W świecie uniksowym emulatory terminali emulują terminale szeregowe, gdzie strumień danych, który ma być pokazywany użytkownikowi, jest wysyłany pojedynczo przez linię szeregową.

W czasie modemu było to zwykle około 1000-2000 znaków na sekundę, ale dziś może być znacznie szybsze, jeśli zaangażowany jest tylko emulowany sprzęt. Do terminalu należało zrozumienie wysłanych bajtów. Zwykle służyło to do wyświetlania znaków, przesuwania kursora i manipulowania wyświetlaniem na ekranie. Kilka terminali może przełączyć się w tryby graficzne - obsługa gnuplot jest dość duża - ale przepustowość jest o wiele za mała, aby zrobić coś interesującego pod względem wideo.

Jednak w przypadku nowoczesnego komputera z emulowanym sprzętem emulator terminala może wiele zrobić. Spróbuj wyszukać obrazy z wyszukiwanym terminem „ttyquake”, aby zobaczyć niektóre z nich. Powiedziałbym jednak, że jeśli pragniesz HD, najprawdopodobniej będziesz rozczarowany.

http://onyx.chattanoogastate.edu/~jack/matrix/insert.jpg


Pamiętaj, że niektóre emulatory terminali mogą zapewniać rozszerzenia specyficzne dla dostawcy.
Thorbjørn Ravn Andersen

0

Do oglądania zdjęć wybierz fim

W przypadku opcji odtwarzania wideo użyj mplayera

EDYTOWAĆ:

Raczej fim, spróbuj kineskopu . Chociaż jeszcze tego nie przetestowałem


Dotyczy to bufora ramki konsoli Linux, a nie emulatora terminali.
Graeme
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.