Como fazer gravações de desktop WebM?

12

Estou procurando um aplicativo de gravador de mesa / screencast que possa produzir em formato WebM ou um programa que possa converter o formato .ogv gerado por gtk-recordmydesktop em WebM.

Selecionei o WebM como o formato de que preciso, porque ele parece ser o único codec gratuito suportado pelo YouTube, onde minhas gravações terminarão. Eu tentei fazer o upload de um .ogv no passado e recebi um vídeo verde sólido, então isso não funcionará para mim.

Eu moro nos EUA e tenho consciência de que estou tentando evitar qualquer coisa que possa ter problemas com patentes de software, como gstreamer0.10-plugins-ugly ou gstreamer0.10-plugins-bad . Foi por esse motivo que eu estava originalmente interessado no Tibesti (por exemplo), mas que precisava da instalação de pacotes como o já mencionado.

Eu fiz algumas pesquisas on-line para uma solução gratuita (como em dinheiro e liberdade), mas até agora não consegui encontrar nada. Alguma sugestão?

    
por Christopher Kyle Horton 26.05.2011 / 07:57

7 respostas

6

12,04 LTS

Parece que ffmpeg não funciona mais corretamente nesta versão para conversão as gravações .ogv de recordmydesktop para o WebM. Como não é mais mantido, é recomendado usar o seu substituto avconv , fornecido no pacote libav-tools (que parece ser instalado automaticamente se ffmpeg estiver instalado).

O comando necessário para usar avconv para conversões não é muito diferente de ffmpeg :

avconv -i input.ogv output.webm

Assim, se alguém está enfrentando o mesmo problema de tentar usar apenas pacotes gratuitos para converter de .ogv para .webm em 12.04 (ou presumivelmente depois), foi assim que resolvi o problema. Isso deve ser útil se você estiver gravando para mostrar novos recursos ou documentar problemas usando o vídeo.

    
por Christopher Kyle Horton 22.01.2012 / 02:10
6

Estou usando coisas assim:

avconv -f x11grab -s 1024x768 -r 24 -i 0:0 -deadline realtime -b 5000000 -minrate 200000 -maxrate 40000000 recording-filename-000.webm

Onde:

-f x11grab - aplica o "formato" de captura de tela da entrada.

-s 1024x768 é a resolução do arquivo de entrada (também conhecido como área de captura). Por exemplo, igual a resolução de desktop. Se menor que isso, a área de gravação seria à esquerda e superior. Eu usei 1024x768 área de gravação neste exemplo.

-r 24 - framerate. Basicamente, 23 a 30 FPS usados por filmes reais para dar uma imagem de gravação suave. No entanto, para screencast pode ser bom reduzir isso para obter uma melhor imagem em taxas de bits menores. Eu usei 24 para fazer captura de tela do jogo.

-i 0:0 é uma sugestão para usar o display 0: 0 como fonte (o dispositivo está na notação xorg). Se você tem apenas 1 monitor e configuração padrão do Xorg, 0: 0 estará ok na maioria das vezes.

-deadline realtime - é uma dica para o libvpx. Nós queremos a captura ao vivo. Queremos desempenho em tempo real. Então libvpx fará melhor codificar o VP8 em REALTIME. Para fazer isso, ele troca a qualidade pela velocidade. A uma determinada taxa de bits a qualidade será um pouco pior do que seria na maneira não-realtime. Mas a velocidade de codificação dispararia. Assim, no meu hardware, ele pode compactar 1024x768 @ 24FPS, cenas intensas, sem deixar cair nenhum quadro (embora seja recomendável usar CPU potente). Neste exemplo, eu queria uma captura ao vivo de qualidade decente em bons FPS e área de captura bastante grande. Portanto, o uso da CPU pelo codec pode ser um problema. É por isso que essa dica realmente precisava de bons resultados.

-b 5000000 - taxa de bits de destino em bits / segundo. Eu usei 5Mbits para obter uma imagem mais ou menos boa de cenas bastante intensas. O codec tentará manter a velocidade média de bitrate do vídeo próxima a esse valor. Quanto menor esse valor, pior a qualidade e menor o arquivo. Você pode experimentar um pouco para ter a ideia de qual taxa de bits é boa para usos específicos. Os serviços de compartilhamento de vídeo baixariam o vídeo se você ultrapassasse o limite. Se você está prestes a usar o próprio servidor, cabe a você cuidar do tráfego. Se você não conseguir, a qualidade da imagem será ruim. Sinta-se à vontade para alterar o valor para ter uma ideia do que é melhor para você. Os 5Mbits foram feitos para uma captura ao vivo mais ou menos agradável de cenas intensas em jogos onde você não pode ver facilmente que a imagem está supercomprimida. Para capturar aplicativos estáticos, você precisará basicamente de menos do que isso.

-minrate 200000 - é uma taxa de bits mínima permitida para o codec. Dependendo da natureza da coisa que você deseja capturar, às vezes você pode querer forçar uma taxa de bits mínima para manter uma aparência razoavelmente correta. Às vezes, a heurística do codec pode reduzir a taxa de bits muito abaixo dos valores que você pode querer, dando uma imagem ruim em algumas cenas. Esta opção permite forçar o codec a manter uma taxa de bits mínima, mesmo se o codec achar que a cena é simples e a taxa de bits pode ser descartada. O valor alto desse parâmetro pode aumentar o tamanho do arquivo, impedindo que o codec use taxas de bits inferiores.

-maxrate 40000000 - Esse valor controla a taxa de bits máxima de burst em cenas intensas. Eu usei um valor realmente alto para permitir que o codec fosse muito mais alto do que a média desejada, se considerarmos que a velocidade mais alta é obrigatória para manter a qualidade decente em alguma cena. Para obter uma imagem de boa aparência em todas as condições, é desejável definir isso alto o suficiente (40Mbits é a velocidade do tipo BlueRay e fará o truque). Por outro lado, se você estiver prestes a fazer stream usando seu próprio servidor, você terá que reduzir esse valor ao custo de alguma qualidade de imagem em cenas intensas. Outro servidor pode falhar em lidar com a taxa de bits de burst desejada, sendo incapaz de entregá-lo em tempo real aos usuários. Em seguida, o jogador enfrentaria o buffer underrun (que é irritante). Os serviços de compartilhamento de vídeo cuidam por conta própria e geralmente convertem o vídeo para baixo para parâmetros mais baixos, ao custo da qualidade da imagem.

recording-filename-000.webm - é um nome de arquivo de saída. Se você usa a extensão .webm, o ffmpeg / avconv é inteligente o suficiente para entender que você quer WEBM. É TÃO simples - avconv adivinha o formato desejado do nome do arquivo. Então, os arquivos .WEBM são WEBM dentro.

É isso - este comando direciona a gravação de tela para o arquivo webm. Não são necessárias conversões extras e libvpx é sugerido para ser o mais rápido possível. Não há som, pois não há especificação para entrada de som. Pode ou não ser o que você quer. Para som, você também precisa especificar a fonte de entrada para o fluxo de som.

P.S. isso pode parecer um pouco complicado demais, mas no final do dia você pode descobrir que um tamanho não serve para todos. Então, para obter uma imagem de boa aparência em todas as situações, você pode realmente querer ter algumas alças para o codec usado e querer ajustá-las. O Ffmpeg oferece todas as alças que você pode precisar e muito mais do que isso. É um armamento pesado de conversão e codificação de vídeo. Portanto, este exemplo é um bom ponto de partida para aqueles que querem fazer codificações mais ou menos avançadas e está pronto para experimentar um pouco para obter resultados realmente decentes.

    
por Encoder1 30.09.2012 / 02:05
5

Você pode fazer gravações WebM no Ubuntu 11.10 + GNOME Shell pressionando a tecla Ctrl + Deslocar + Alt + R combinação de teclas.

Na primeira vez que você pressiona o combo, um círculo vermelho aparece na área de notificação, indicando que a gravação começou. A segunda vez que você pressiona, o círculo vermelho desaparece e você terá sua gravação no diretório ${HOME}/Videos .

Mais informações aqui: Gnome Shell Cheat Sheet: gravação de screencast

    
por reygecko 23.10.2011 / 11:22
3

Use o aplicativo transmageddon para fazer isso. seu aplicativo baseado no Gstreamer

sudo apt-get install transmageddon ou clique aqui instalar o transmageddon

    
por alz3abi 26.05.2011 / 23:15
2

Use Kazam para gravar.

A saída é mkv e funciona bem com o Youtube. Único problema O Kazam não parece ter sido atualizado por um tempo.

BTW Você deve estar seguro usando o Tibesti se eu entendi corretamente, a menos que você esteja absolutamente paranóico de que alguma nave alienígena gigante irá raptá-lo e torturá-lo por usar um software ...

    
por RolandiXor 26.05.2011 / 23:17
2

11,10 e anterior

ffmpeg pode ser usado para converter .ogv em .webm diretamente, sem a necessidade de codecs adicionais. Como mencionado em um comentário sobre outra resposta , a versão de ffmpeg fornecida pelo Ubuntu não vem por padrão com codecs que poderia representar problemas de patentes de software.

Este é um programa de linha de comando; para usá-lo, basta abrir uma janela de terminal e entrar:

ffmpeg -i input.ogv output.webm
    
por Christopher Kyle Horton 31.05.2011 / 10:36
1

imo, A melhor maneira de converter vídeos para o WebM é Firefogg .

  • Este é um plugin firefox (por isso é uma ferramenta multiplataforma como o firefox)
  • Ele será compactado no formato WebM (código-fonte aberto - codec compatível com a Web)
  • Oferece vários tamanhos de codificação (muito convenientes para obter a melhor taxa de compactação)
  • Taxa de compactação REALMENTE eficiente (pelo menos tanto quanto H264)
  • É super fácil de usar

    
por Sulliwane 18.02.2013 / 12:46