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 0
o 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 ultrafast
em conjunto com a -crf 0
configuraçã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 👴🏻