Como fazer gravações de desktop WebM?

13

Estou procurando por um aplicativo gravador / screencast de desktop que possa gerar no formato WebM ou um programa que possa converter o formato .ogv gerado pelo gtk-recordmydesktopWebM.

Selecionei o WebM como o formato necessário porque parece ser o único codec gratuito suportado pelo YouTube, onde minhas gravações terminam. Eu tentei enviar um arquivo .ogv no passado e recebi um vídeo verde sólido, para que não funcione para mim.

Eu moro nos EUA e estou consciente de tentar ficar longe de qualquer coisa que possa ter problemas de patente de software, como gstreamer0.10-plugins-uglyou gstreamer0.10-plugins-bad. Foi por esse motivo que eu estava originalmente interessado no Tibesti (por exemplo), mas isso precisava da instalação de pacotes como o mencionado acima.

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

Christopher Kyle Horton
fonte
você pode dizer a sua localização?
Lincity
@ Laukik, afirmei acima, moro nos EUA. Se você precisa saber em que estado, moro em Michigan. Eu não gostaria de ser mais específico do que isso.
Christopher Kyle Horton
@ Warriorlng64 oops!
Lincity

Respostas:

6

12.04 LTS

Parece que ffmpeg não funciona mais corretamente nesta versão para converter recordmydesktopas gravações .ogv da Web em WebM. Como ele não é mais mantido, é recomendável usar sua substituição avconv, fornecida no libav-toolspacote (que parece ser instalado automaticamente se estiver ffmpeginstalado).

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

avconv -i input.ogv output.webm

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

Christopher Kyle Horton
fonte
Recentemente comecei a trabalhar no Kazam , agora ele pode gravar nos formatos VP8 / WebM e H264 / Matroska. Fiz compilações de PPA para Oneiric e Precise. Ele usa o gstreamer para gravar e não requer ffmpeg. Ele deve funcionar em um Ubuntu instalado corretamente, sem codecs extras.
BigWhale 22/01
@ BigWhale Navegando um pouco no código, notei que ele ainda depende gstreamer0.10-plugins-bade gstreamer0.10-plugins-ugly. Esses pacotes contêm os codecs que estou tentando evitar devido a problemas de patente, conforme declarado acima. Se uma compilação atualizada / alternativa se tornar disponível e não depender desses pacotes, informe-me em uma nova resposta. Obrigado de qualquer maneira!
Christopher Kyle Horton
Eu receboError while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
jrg 11/03/12
@jrg Eu tive um problema semelhante no meu laptop ao converter vídeos que gravei usando uma solução alternativa publicada neste recordmydesktoprelatório de erro . Curiosamente, quando levei o mesmo vídeo para a minha máquina desktop e a converti lá, ele funcionou sem problemas. Então ... pode ser um bug, mas acho que não sei o suficiente para registrar um relatório ainda.
Christopher Kyle Horton
1
Como uma observação lateral: o FFMpeg ainda é mantido (na verdade, a versão 1.0 foi lançada recentemente), mas houve uma mini guerra entre alguns desenvolvedores, o que levou ao fork avconv. É só que os mantenedores do debian / ubuntu ficaram do lado do avconv. A mensagem "ESTE PROGRAMA ESTÁ SUBSTITUÍDO" é totalmente enganosa. Leia sobre a situação atual aqui: http://blog.pkh.me/p/13-the-ffmpeg-libav-situation.html .
Phoibos
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 - impõe a captura de tela "formato" da entrada.

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

-r 24- taxa de quadros. Basicamente, 23 a 30 FPS usados ​​por filmes reais para fornecer uma imagem de gravação suave. No entanto, para o screencast, pode ser bom reduzi-lo para obter uma imagem melhor com taxas de bits mais baixas. Eu usei 24 para capturar a tela do jogo.

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

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

-b 5000000- taxa de bits alvo em bits / segundo. Usei 5Mbits para obter uma imagem mais ou menos boa de cenas bastante intensas. O codec tentará manter a velocidade média da taxa de bits 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 uma ideia de qual taxa de bits é boa para usos específicos. Os serviços de compartilhamento de vídeo converteriam o vídeo se você exceder. Se você está prestes a usar seu próprio servidor, é você quem cuida do tráfego. Se você ultrapassar, a qualidade da imagem será ruim. Sinta-se livre para alterar o valor para ter uma idéia do que é melhor para você. Os 5Mbits foram projetados para capturar ao vivo mais ou menos agradáveis ​​aos olhos de cenas intensas em jogos em que você não pode ver facilmente que a imagem está supercomprimida. Para capturar aplicativos estáticos, você precisará basicamente muito menos do que isso.

-minrate200000 - é uma taxa de bits mínima permitida para codec. Dependendo da natureza das coisas que você deseja capturar, às vezes você pode forçar a taxa de bits mínima a manter uma imagem com aparência razoável, não importa o quê. Às vezes, a heurística do codec pode reduzir a taxa de bits muito abaixo dos valores desejados, dando uma imagem ruim em algumas cenas. Essa opção permite forçar o codec a manter a taxa de bits mínima, mesmo que o codec pense que a cena é simples e a taxa de bits pode ser eliminada. O valor alto desse parâmetro pode aumentar o tamanho do arquivo, impedindo que o codec use taxas de bits mais baixas.

-maxrate 40000000- Este valor controla a taxa de bits máxima de burst em cenas intensas. Usei um valor realmente alto para permitir que o codec suba muito mais que a média desejada, se considerar que uma velocidade maior é obrigatória para manter uma qualidade decente em alguma cena. Para obter uma imagem bonita em todas as condições, é desejável definir um valor alto o suficiente (40Mbits é a velocidade do BlueRay e fará o truque). Por outro lado, se você estiver prestes a transmiti-lo usando seu próprio servidor, precisará reduzir esse valor ao custo de alguma qualidade de imagem em cenas intensas. O outro servidor pode falhar ao lidar com a taxa de bits desejada, não podendo entregá-la em tempo real aos usuários. Em seguida, o jogador enfrentaria buffer underrun (o que é irritante). Os serviços de compartilhamento de vídeo tomam conta de si próprios e geralmente convertem o vídeo para reduzir parâmetros com o 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 o WEBM. É TÃO simples - o avconv adivinha o formato desejado a partir do nome do arquivo. Portanto, os arquivos .WEBM são WEBM por dentro.

É isso aí - esse comando direciona a gravação de tela para o arquivo webm. Não são necessárias conversões extras e libvpxé sugerido que seja 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ê deseja. Para som, você também deve especificar a fonte de entrada para o fluxo de som.

PS: isso pode parecer um pouco complicado demais, mas no final do dia você pode descobrir que um tamanho não serve para todos. Portanto, para obter uma imagem bonita em todas as situações, você pode realmente querer usar alguns identificadores para codec usados ​​e ajustá-los. O Ffmpeg fornece todas as alças que você pode precisar e muito mais que isso. É um pesado armamento de conversão e codificação de vídeo. Portanto, este exemplo é um bom ponto de partida para quem deseja fazer codificações mais ou menos avançadas e está pronto para experimentar um pouco para obter resultados realmente decentes.

Encoder1
fonte
6

É possível fazer gravações WebM em Ubuntu 11.10 + GNOME Shell pressionando a Ctrl+ Shift+ Alt+ Rcombinaçã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 foi iniciada. Na segunda vez que você pressiona, o círculo vermelho desaparece e você terá sua gravação no ${HOME}/Videosdiretório.

Mais informações aqui: Folha de dicas do Gnome Shell: Gravação em screencast

reygecko
fonte
Na época em que pedi isso originalmente, eu não tinha o GNOME Shell. Mas eu costumava compilá-lo jhbuildno 10.10 e instalá-lo nos meus sistemas 11.10, e sei que isso também funciona. Obrigado por adicionar esta resposta!
Christopher Kyle Horton
Na versão atual (usando 16.04), os vídeos são armazenados ~/Videoscom um nome de arquivo Screencast from {date} {time}.webm.
Kariem
3

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

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

alz3abi
fonte
Examinei as dependências do transmageddon através do sudo apt-get install e o pacote gstreamer-plugins-ugly que mencionei acima foi incluído na lista. Novamente, não tenho certeza se isso é totalmente legal para eu usar, e isso é importante para mim.
Christopher Kyle Horton
2

Use o Kazam para gravar.

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

BTW Você deve estar seguro usando o Tibesti, se bem entendi, a menos que esteja absolutamente paranóico de que alguma espaçonave alienígena gigante o seqüestrará e você será torturado por usar um software ...

RolandiXor
fonte
O Kazam pede a instalação do ffmpeg durante a instalação do sudo apt-get, que não tenho certeza se eu poderia usá-lo legalmente.
Christopher Kyle Horton
@ Warrioring64, eu não acho que ffmpeg é ilegal ...
RolandiXor
É algo com que tenho que me preocupar, já que estou nos EUA e as patentes de software são aplicadas aqui. Por favor, veja esta parte na Wikipedia, se puder ajudar a entender o que estou recebendo aqui.
Christopher Kyle Horton
2
@ Warrioring64 - a versão incluída no Ubuntu é despojada desses codecs.
RolandiXor
Tudo bem ... mas, olhando além das dependências fornecidas, também encontrei o libavcodec-extra-52 e o libavutil-extra-52, que, a partir de um pouco mais de pesquisa que encontrei, poderia me causar problemas. Desculpe se pareço um pouco difícil, mas mesmo que eu não seja pego de forma realista por usar esse software, eu ainda não gostaria que estivesse em minha consciência.
Christopher Kyle Horton
2

11.10 e anterior

ffmpegpode ser usado para converter .ogv em .webm diretamente, sem a necessidade de codecs adicionais. Como mencionado em um comentário em outra resposta , a versão ffmpegfornecida pelo Ubuntu não vem por padrão com codecs que podem representar problemas de patente de software.

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

ffmpeg -i input.ogv output.webm
Christopher Kyle Horton
fonte
Sim. Acabei de instalar ffmpeg sem a repo Medibuntu e tirou todas as versões livres de pacotes e eu codificado um wmv para webm facilmente com ffmpeg -i file.wmv -f webm -sameq file.webm
duffydack
1

A melhor maneira de converter vídeos em WebM é o Firefogg .

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

insira a descrição da imagem aqui

Sulliwane
fonte