Posso ver imagens e assistir filmes dentro do emulador de terminal


Respostas:


5

Vários emuladores de terminal suportam o Sixel Graphics , na página do github do PySixel , a lista é:

  • RLogin
  • tanasinn
  • mlterm
  • XTerm
  • DECterm
  • Sapo
  • Reflexão WRQ
  • ZSTEM

Você pode exibir as imagens com o PySixel mencionado acima , que parece capaz de fazer as conversões necessárias. Outra opção é usar ferramentas de netpbm. Tive bons resultados usando o seguinte para converter e exibir uma imagem JPEG no mlterm:

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

Resultado:

mlterm exibindo imagem Sixel

O XTerm também pode exibir imagens Sixel, embora o suporte esteja atualmente limitado a 16 cores (e também com erros). Um arquivo contendo imagens de amostra pode ser baixado aqui , embora os scripts pareçam estar danificados. O XTerm não exibe o formato exato de saída ppmtosixel(não suporta as seqüências de controle usadas no início / fim). Antes de encontrar PySixel, usei o seguinte script para cortar a ppmtosixelsaída em algo que o XTerm exibirá:

#!/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

As imagens não serão exibidas no modo VT420 padrão. Somente nos modos VT240, VT241, VT330 ou VT340 eles serão exibidos. Além disso, a --enable-sixel-graphicsopção de compilação é necessária. Encontrei melhores resultados com o VT340 ( xterm -ti vt340). Aqui estão os resultados (o primeiro é uma imagem muito legal do arquivo de exemplo):

insira a descrição da imagem aqui


1
Seu script não é exatamente robusto com ecos, cabeça e cauda. O problema que você está tentando combater é que o xterm no modo utf8 tem problemas com os códigos c1 de 8 bits. Felizmente, os códigos c1 também podem ser codificados em 7 bits. perl -wpe 'use bytes;s!([\x80-\x9f])!qq(\e).chr(ord($1)-64)!ge'funciona como um ótimo filtro após o ppmtosixel (e todas as outras vezes em que você desejar mudar os códigos de 8 bits c1 para seus equivalentes de 7 bits).
Hildred

Existe algo assim para o konsole ou outros emuladores de terminal modernos?
ctrl-alt-Delor

5

Terminologia

é o que você quer.

Por exemplo - eu quero mudar o fundo do meu terminal?

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

O que isso faz?

Emula um vt100 ligeiramente estendido com algumas extensões e bling jogado dentro

> 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...

Você vê isso acima? Isso é feito no buffer de estrutura.


2

Eu descobri recentemente o visualizador de imagens de buffer de quadro, fbi.


1

Sim, mais ou menos. O Mplayer, por exemplo, suporta a renderização de vídeo aalib (monocromática) e libcaca (cor) em um terminal de texto. Não é exatamente de alta resolução, mas com a renderização sub "pixel" e o pontilhamento temporal aumentando a resolução efetiva, geralmente você pode dizer o que está acontecendo.


0

No mundo Unix, os emuladores de terminal emulam terminais seriais, onde o fluxo de dados a ser mostrado ao usuário é enviado um de cada vez através de uma linha serial.

No tempo do modem, isso geralmente era de 1000 a 2000 caracteres por segundo, mas hoje pode ser muito mais rápido se apenas o hardware emulado estiver envolvido. Cabia então ao terminal entender os bytes enviados. Normalmente, isso era para mostrar caracteres, mover o cursor e manipular a exibição na tela. Alguns terminais podem mudar para os modos gráficos - o gnuplot suporta bastante - mas a largura de banda é muito pequena para fazer algo interessante em termos de vídeo.

Ainda assim, para um computador moderno com hardware emulado, um emulador de terminal pode fazer bastante. Tente pesquisar imagens com o termo de pesquisa "ttyquake" para ver algumas delas. Eu diria que, se você gosta de HD, provavelmente ficará decepcionado.

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


Observe que alguns emuladores de terminal podem fornecer extensões específicas do fornecedor.
Thorbjørn Ravn Andersen

0

Para visualização de imagens, vá para fim

Para a opção de reprodução de vídeo, use mplayer

EDITAR:

Em vez disso, tente o tubo de imagem . Embora eu ainda não o tenha testado


Isso é para o framebuffer do Linux Console, não para um emulador de terminal.
Graeme
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.