Software de gravação de tela sem perdas


8

Para um pequeno projeto meu, quero gravar pequenas transmissões de tela que mostrem os recursos do meu programa. Atualmente, estou usando um aplicativo pequeno na minha caixa do Ubuntu, que cria saída gif diretamente animada. A desvantagem é que esse gif tem algumas limitações no número de cores. Se você inspecionar alguns dos gifs, poderá observar que, embora pareça ótimo, não é perfeito, especialmente quando você olha as fontes com alias

Gif Animado

Existem algumas soluções artesanais, por exemplo, a demonstração no site de texto sublime . Para ter algo bom, primeiro você precisa gravar sua tela completamente sem perdas. Infelizmente, a maioria dos programas de exibição de tela comprime o vídeo.

Pergunta: Tenho o Ubuntu e o OSX à minha disposição, que (se possível gratuitamente) soluções de conversão de tela existem que me permitem criar vídeos sem perdas?

Crédito extra para programas em que posso selecionar a região ou janela para gravar e desligar o áudio.

Atualizar

Para deixar claro o que quero dizer com sem perdas: geralmente, os vídeos são compactados com um método perfeito para imagens / vídeos naturais, mas horrível para imagens / vídeos com bordas nítidas e estruturas de uma cor . Fiz duas transmissões de tela e ampliei uma pequena parte para que esses efeitos fossem visíveis. O primeiro é feito com gtk-recordmydesktop com a mais alta qualidade e os artefatos na área cinza são claramente visíveis

insira a descrição da imagem aqui

O segundo é feito com a pequena ferramenta Record your Desktop , que salva arquivos gif diretamente e captura os pixels exatos da tela sem compactação.

insira a descrição da imagem aqui

O que eu quero é um rodízio de tela que salve seus vídeos nesse formato bruto, sem as limitações do gif.

Possivelmente questões relacionadas:


Eu apaguei minha resposta sugerindo gtk-recordMyDesktop, pois sua qualidade total não é sem perdas. Eu só não tinha certeza se tinha ou não. Infelizmente não tenho uma máquina Linux para testar. Agora eu sei, obrigado por me informar que não atendeu às suas necessidades.
AJ Henderson

@AJHenderson Eu ficaria feliz com qualquer programa Linux ou MacOSX. Especialmente para Mac, parece haver muitas ferramentas pequenas, mas tenho tempo para experimentá-las e elas nunca anunciam podem gravar sem perdas .
Halirutan

Respostas:


7

O FFmpeg com um codec sem perdas é uma solução. Lembro-me de uma comparação de diferentes codecs que concluíram que a Apple Animation (conhecida por ffmpeg as qtrle) dava a melhor qualidade para gravação de tela.

ffmpeg -f x11grab -r 25 -s 1024x768 -i :0.0 -c:v qtrle output.mov

Pare abrindo seu terminal enquanto estiver em execução e pressionando q. Obviamente, altere a resolução (1024x768 aqui) para corresponder à sua. Para selecionar uma seção da sua tela, veja como capturar a tela no wiki do ffmpeg.

É possível que o ffmpegque acompanha sua distribuição Linux não tenha o qtrlecodec incluído. Nesse caso, você precisa baixar e compilar sua própria versão.


Também ouvi falar da Apple Animation . Deixe-me tentar isso.
21

+1 funciona perfeitamente. Vamos aguardar se alguém criar um programa que não seja da linha de comando. Caso contrário, esta será minha resposta aceita.
Halirutan

Se ninguém sugere nada e você realmente quer um front-end da GUI, parece-me que essa seria uma tarefa simples para alguém com conhecimento sobre criação de GUI (ou seja, não eu: v), então provavelmente poderia encontrar alguém que estivesse disposto para chicotear um simples frontend juntos em meia hora por um preço razoável, talvez até em chat.SE
evilsoup

Isso não vai funcionar no OS X, é triste.
Nome de exibição

Bem, só quero agradecer novamente por esta resposta. Estou usando o OBS com a qtrlecodificação para criar um arquivo .mov perfeito. Então extraio os quadros e uso a magia de imagem para criar um gif animado muito pequeno e incrivelmente agradável. A vantagem do OBS é que você define facilmente a resolução de saída e qual janela ou parte da tela você deseja gravar. Permite combinar várias regiões gravadas e áudio com facilidade. Raramente visto algo assim no Linux!
halirutan

3

Como alternativa, canalize a saída da tela para um segundo computador para gravar, usando um dispositivo como o Blackmagic Intensity. Ele suporta captura para um formato totalmente descompactado (verifique se você tem um SSD ou RAID para gravar, pois a taxa de bits é muito alta).

Portanto, o computador em que você está trabalhando deve ter saída para monitor duplo - espelhe a tela para que uma saída vá para o monitor e a outra para um PC com uma placa BlackMagic PCIe (ou USB 3.0), que registra a saída. Use DVI / HDMI, não VGA.

Observe que a Intensity suporta apenas resoluções do tipo de vídeo, portanto, resoluções como 1024x768 ou 1024x1024 etc. não são boas - 480p, 720p, 1080p etc. $ 99 agora de qualquer maneira).

Depois, você pode editar e compactar o vídeo bruto da maneira que desejar.


Hehe, eu acho que isso é um exagero, mas +1 na resposta. Preciso de algo rápido que eu possa usar quando tiver desenvolvido o recurso para fazer uma conversão de tela.
Julio

2

Eu tinha requisitos muito semelhantes e finalmente encontrei o Claquette .
É um aplicativo OS X que usa um codec sem perdas. Embora não permita definir uma área da tela antes da gravação, ele possui um recurso de corte que permite selecionar uma região após o término da gravação. O áudio também pode ser desligado. Os filmes podem ser exportados em vários formatos (incluindo h.264, ProRes e GIF animado).


11
Parece um bom pequeno programa. Atualmente, estou fazendo meus pequenos gifs com o Kazam, que vem com o Ubuntu. Então, eu estou usando um pequeno script criado a partir da resposta aceita para criar gifs pequenos e de alta qualidade. +1
halirutan 16/05/19

2

No OS X, parece que o ScreenFlow pode gravar sem perdas (não por padrão, mas isso pode ser ativado nas configurações). Infelizmente, este aplicativo não é gratuito. Ainda procurando alternativas gratuitas…

Atualização Importante!

Isso se aplica apenas ao Screenflow 4.5.3 (e talvez algumas versões anteriores). No Screenflow 5, esse recurso se foi. Eles anunciam que podem gravar sem perdas, mas isso é uma mentira descarada: o modo "sem perdas" está usando o Apple ProRes, que não é sem perdas (e eu testei a saída, ela tem artefatos) e não há como selecionar alguns outro codec (no Screenflow 4.5.3, o modo sem perdas é alcançado usando o codec "Animation", ou seja qtrle, no Screenflow 5 não há como fazer isso)

Então ... adeus, doce príncipe.

Atualização 2

O ffmpeg também pode gravar a tela, se você aprender a usá-la corretamente.


Btw, eu comprei o ScreenFlow de volta quando você postou sua resposta. Mesmo que eu não o esteja usando para criar os pequenos gifs animados que essa pergunta foi direcionada, ainda é um rodízio de tela muito bom que possui muitos recursos interessantes.
halirutan

^ btw, pode-se escolher apenas um dentre "gif" e "pequeno". gif é uma compactação muito ineficiente.
Exibir nome

Eu usaria o Screenflow para isso. Eu tenho a versão 8 e exporta o ProRes 4444 com tamanho 100%, o que é efetivamente sem perdas para a maioria dos propósitos.
tomh

bem, não é realmente sem perdas, e a pergunta é apenas sobre sem perdas
Exibir nome

1

Aqui está uma opção que não é da linha de comando.

Tente Collaaj ( http://collaaj.com ). Funciona em PC e Mac. Não funciona no Ubuntu, mas desde que você mencionou que possui o OSX, isso deve funcionar bem. Eu acho que deve fazer o que você pediu e muito mais. Como seleção de região, seleção de entradas, etc., e também permite fazer upload e manter suas gravações no collaaj.com para acesso a qualquer momento. Eles têm um bom conjunto de vídeos aqui - http://collaaj.com/videos


Você pode realmente gravar as janelas da sua tela com esta ferramenta? Eu só vi que eles percorrem arquivos do powerpoint ou pdf. Além disso, preciso extrair os quadros do vídeo, o que significa que preciso armazenar os vídeos localmente. Parece que essas ferramentas o carregam diretamente para compartilhá-lo, certo?
#

Halirutan, 1. sim, no PC e Mac, você pode gravar a tela inteira. Você pode até alterar as configurações entre 720P e 1080P, também pode fazer a tela + a câmera ao mesmo tempo.
Video Junkie

Halirutan, em relação à sua segunda pergunta, Collaaj armazena vídeos localmente no formato mp4, além de oferecer a opção de fazer upload para a nuvem e compartilhar como URL. É muito abrangente.
Video Junkie

Este vídeo explica claramente - collaaj.com/9rE17cT
Video Junkie

0

Se você precisar de algo menos complicado, tente rec, que é meu :) https://sites.google.com/site/joopeter/

Também é gratuito, sem perdas, mas mais eficiente e preciso!


Como escrevi, tenho o OSX e o Ubuntu à minha disposição. Seu programa é para o Windoze XP e superior .
halirutan

0

Por favor, desculpe meu atraso para a festa, isso é algo com o qual tenho trabalhado na gravação de tela sem perdas tardia

Originalmente, eu estava usando o OBS para gravar minha tela ao longo do ano de 2019, principalmente para enviar gravações de tela / elenco para o youtube, no entanto, recentemente comecei a experimentar o ffmpeg para gravar minha tela e o microfone ainda não testou a gravação de áudio na área de trabalho .

Comecei com as configurações vanilla ffmpeg para gravar minha tela, mas a configuração GOP da gravação torna extremamente doloroso ao editar a gravação em um editor NLE / NLA, como shotcut, então voltei e reli o documento de captura de tela no wiki ffmpeg e notamos que as gravações de tela podem ser capturadas sem perdas usando o codec x264, desde que -crf 0o crf esteja definido como 0, o que acredito que significa que o ffmpeg usará o codec x264 não aplicará nenhuma compactação com perdas à gravação. Além disso, o wiki sugere o uso -preset ultrafastem conjunto com a -crf 0configuração do comando ffmpeg. Eu experimentei essas configurações ontem à noite e a qualidade da imagem / tamanho do arquivo é ótima.

Gravei minha tela 4K 3840 x 2160 monitor a 30 qps e a taxa de bits era totalmente gerenciável, ou seja. Acho que nunca ultrapassou os 10 MB / s e uma gravação de um minuto foi de ~ 48 MB, o que é um tamanho de arquivo totalmente aceitável para arquivar gravações.

Ressalvas

  • Obviamente, se você não preferir usar uma linha de comando, isso provavelmente não será o seu caso, pois eu achei que confiar em uma GUI para interagir com o ffmpeg não é uma coisa viável, pois a maioria das GUIs com as quais experimentei está desatualizada.
  • Além disso, atualmente, tenho problemas com a gravação de microfone e tela de áudio ao mesmo tempo em um único processo / comando ffmpeg; portanto, tenho que dividir o comando em dois comandos / processados ​​separados e iniciá-los simultaneamente para manter o áudio / vídeo sincronizado.
    • Eu executo o macOS 10.13.6 e estou usando o driver da web da Nvidia, para que esse seja o problema porque o processo / comando ffmpeg único da tela de gravação e do microfone está falhando ao mesmo tempo. Não tenho muita certeza de qual é o problema. 🤷‍♂️
  • Ainda não encontrei uma solução para gravar o áudio em um codec sem perdas, mas essa será definitivamente minha próxima tarefa de pesquisa.
  • Além disso, gostaria de converter todas as gravações anteriores ffmpeg & OBS usando essa nova técnica para preservá-las para fins de arquivamento.

Você mencionou a conversão de suas gravações para GIFs animados. Eu usei o projeto a seguir para converter pequenas gravações de tela em GIFs, que só funcionam com gravações baseadas em terminal e obtiveram resultados agradáveis. Ele ainda possui um contêiner de encaixe que facilita o uso para vários sistemas operacionais.

Eu experimentei usar o ffmpeg para converter e gravar o iPhone em GIF animado um tempo atrás, o que foi útil para carregar o GIF no github porque acredito que o github não suporta o upload de arquivos de vídeo como mov mkv ou mp4 .

Além disso, fiz uma pesquisa rápida no codec QTRLE e parece que ele não é compatível com o formato de contêiner MP4 ; portanto, se for necessário usar algo diferente de MOV, é possível usar um codec diferente.

⚠️ o comando abaixo exigirá a instalação simultânea .

concurrently --kill-others \ 
"ffmpeg -f avfoundation -capture_cursor 1 \
-capture_mouse_clicks 1 \
-framerate 30 
-i "1:" -c:v libx264 -crf 0 -preset ultrafast \
lossless-screen-rec.mkv 2>/dev/null" \
"ffmpeg -f avfoundation -i ":3" \
-acodec alac \
lossless-mic-.m4a 2>/dev/null"

o comando acima capturará a tela do computador sem perdas usando x264 e usando o alac para capturar a entrada do microfone sem perdas também. ambos os formatos funcionam bem para edição em um editor NLA / NLE, como um shotcut.

⚠️ ":3"e 1:variará de acordo com o sistema executando o macOS

Para obter uma lista de dispositivos de captura no macOS

ffmpeg -f avfoundation -list_devices true -i ""

De qualquer forma, sei que há muitas informações, mas pensei em compartilhar essas informações pelo fato de estar usando o ffmpeg quase diariamente nas últimas duas semanas, então pensei em compartilhar o que aprendi, e deixe essa informação para mim no futuro 👴🏻


Bem-vinda! Você pode compartilhar um comando ffmpeg completo? Isso tornaria muito mais fácil para os futuros leitores poderem usar sua resposta.
Michael Liebman
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.