Jak nagrywać na pulpicie WebM?

13

Szukam aplikacji do nagrywania / screencastów na komputery stacjonarne, która może wyświetlać dane w formacie WebM, lub programu do konwersji formatu .ogv generowanego przez gtk-recordmydesktopWebM.

Wybrałem WebM jako potrzebny mi format, ponieważ wydaje się, że jest to jedyny darmowy kodek obsługiwany przez YouTube, w którym moje nagrania się skończą. W przeszłości próbowałem przesłać plik .ogv i mam stały zielony film, więc to nie działa dla mnie.

Mieszkam w USA i mam świadomość, że staram się trzymać z dala od wszystkiego, co może mieć problemy z patentami na oprogramowanie, takie jak gstreamer0.10-plugins-uglylub gstreamer0.10-plugins-bad. Z tego powodu pierwotnie interesowałem się Tibesti (na przykład), ale wymagało to instalacji pakietów takich jak wyżej.

Szukałem w Internecie darmowego rozwiązania (zarówno w przypadku pieniędzy, jak i wolności), ale jak dotąd nic nie znalazłem. Jakieś sugestie?

Christopher Kyle Horton
źródło
czy możesz podać swoją lokalizację?
Lincity,
@Alaukik, powiedziałem powyżej, że mieszkam w USA. Jeśli chcesz wiedzieć, który stan, mieszkam w Michigan. Nie chciałbym być bardziej szczegółowy.
Christopher Kyle Horton
@ Warriorlng64 oops!
Lincity,

Odpowiedzi:

6

12,04 LTS

Wygląda na to, że w tej wersji ffmpeg nie działa już poprawnie do konwersji recordmydesktopnagrań .ogv na WebM. Ponieważ nie jest już utrzymywany, zaleca się użycie avconvzamiast niego zamiennika , dostarczonego w libav-toolspakiecie (który wydaje się być instalowany automatycznie, jeśli ffmpegzostał zainstalowany).

Polecenie potrzebne do avconvkonwersji nie różni się zbytnio od ffmpeg:

avconv -i input.ogv output.webm

Tak więc, jeśli ktoś ma ten sam problem z próbą użycia tylko darmowych pakietów do konwersji z .ogv na .webm w 12.04 (lub prawdopodobnie później), tak to rozwiązałem. Powinno to być pomocne, jeśli nagrywasz w celu pokazania nowych funkcji lub problemów z dokumentami za pomocą wideo.

Christopher Kyle Horton
źródło
Ostatnio zacząłem pracować nad Kazamem , teraz może nagrywać w formatach VP8 / WebM i H264 / Matroska. Zrobiłem kompilacje PPA dla Oneiric i Precise. Do nagrywania używa gstreamera i nie wymaga ffmpeg. Powinien działać na czysto zainstalowanym Ubuntu bez dodatkowych kodeków.
BigWhale
@ BigWhale Trochę przeglądając kod zauważyłem , że nadal zależy od gstreamer0.10-plugins-badi gstreamer0.10-plugins-ugly. Pakiety te zawierają kodeki, których staram się unikać z powodu problemów patentowych, jak wspomniano powyżej. Jeśli dostępna będzie zaktualizowana / alternatywna wersja, która nie zależy od tych pakietów, daj mi znać w nowej odpowiedzi. W każdym razie dzięki!
Christopher Kyle Horton
DostajęError while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
jrg
@ jrg Mam podobny problem na laptopie podczas konwersji wideo nagranego za pomocą obejścia opublikowanego w tym recordmydesktopraporcie o błędzie . Co ciekawe, kiedy wziąłem ten sam film na komputer stacjonarny i tam go przekonwertowałem, zadziałało bez problemu. Więc ... to może być błąd, ale nie sądzę, że wiem o nim wystarczająco dużo, aby złożyć raport.
Christopher Kyle Horton
1
Na marginesie: FFMpeg jest nadal utrzymywany (w rzeczywistości niedawno wyszła wersja 1.0), ale między niektórymi programistami minęła wojna, co doprowadziło do rozwidlenia avconv. Po prostu opiekunowie debian / ubuntu opowiedzieli się po stronie avconv. Komunikat „TEN PROGRAM JEST DEPRECATED” jest całkowicie mylący. Przeczytaj o obecnej sytuacji tutaj: http://blog.pkh.me/p/13-the-ffmpeg-libav-situation.html .
phoibos
6

Używam takich rzeczy:

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

Gdzie:

-f x11grab - wymusza przechwytywanie ekranu „formatu” wejścia.

-s 1024x768to rozdzielczość pliku wejściowego (inaczej obszar przechwytywania). Na przykład równa się rozdzielczości pulpitu. Jeśli jest mniejszy, obszar nagrywania będzie po lewej iu góry. W tym przykładzie wykorzystałem obszar nagrywania 1024x768.

-r 24- częstotliwość wyświetlania klatek. Zasadniczo od 23 do 30 klatek na sekundę wykorzystywanych w prawdziwych filmach w celu zapewnienia płynnego nagrywania obrazu. Jednak w przypadku screencastu może być w porządku zmniejszyć to, aby uzyskać lepszy obraz przy niższych przepływnościach. Użyłem 24, aby zrobić zrzut ekranu z gry.

-i 0:0jest wskazówką, aby użyć wyświetlania 0: 0 jako źródła (urządzenie jest w notacji Xorg). Jeśli masz tylko 1 monitor i domyślną konfigurację Xorg, 0: 0 będzie w większości przypadków w porządku.

-deadline realtime- jest wskazówką do libvpx. Chcemy przechwytywania na żywo. Chcemy wydajności w czasie rzeczywistym. Dlatego libvpx zrobi to najlepiej, aby zakodować VP8 w czasie rzeczywistym. Aby to zrobić, w pewnym stopniu zamienia jakość na szybkość. Przy danej szybkości transmisji bitów jakość będzie nieco gorsza niż w nie-czasie rzeczywistym. Ale prędkość kodowania gwałtownie wzrośnie. Tak więc na moim sprzęcie może chrupnąć 1024x768 @ 24FPS, intensywne sceny, bez upuszczania żadnych ramek (choć zalecany jest mocny procesor). W tym przykładzie chciałem nagrywać na żywo w przyzwoitej jakości przy dobrym FPS i dość dużym obszarze przechwytywania. Użycie procesora przez kodek może więc stanowić problem. Właśnie dlatego ta wskazówka była naprawdę potrzebna do uzyskania dobrych rezultatów.

-b 5000000- docelowa przepływność w bitach / sekundę. Użyłem 5Mbitów, aby uzyskać mniej więcej dobry obraz dość intensywnych scen. Kodek będzie próbował utrzymać średnią szybkość transmisji wideo w pobliżu tej wartości. Im niższa jest ta wartość, tym gorsza jakość i mniejszy plik. Możesz trochę poeksperymentować, aby dowiedzieć się, jaka szybkość transmisji bitów jest dobra dla określonych zastosowań. Usługi udostępniania wideo zmniejszą konwersję wideo, jeśli zostanie przekroczony. Jeśli masz zamiar użyć własnego serwera, od Ciebie zależy, czy zajmiesz się ruchem. Jeśli dojdzie do niedostosowania, jakość obrazu będzie zła. Zmień wartość, aby dowiedzieć się, co jest dla Ciebie najlepsze. 5-bitowe zostały przeznaczone do mniej lub bardziej przyjemnego dla oka uchwycenia na żywo intensywnych scen w grach, w których nie można łatwo zauważyć, że obraz jest nadmiernie skompresowany. Do przechwytywania nieruchomych aplikacji będziesz potrzebować znacznie mniej.

-minrate200000 - to minimalna dozwolona przepływność dla kodeka. W zależności od natury rzeczy, którą chcesz uchwycić, czasami możesz chcieć zmusić minimalną prędkość transmisji, aby utrzymać rozsądnie wyglądający obraz bez względu na wszystko. Czasami heurystyka kodeków może zmniejszyć przepływność znacznie poniżej wartości, których możesz chcieć, co daje zły obraz w niektórych scenach. Ta opcja pozwala zmusić kodek do utrzymania minimalnej przepływności, nawet jeśli kodek uważa, że ​​scena jest prosta i przepływność może zostać porzucona. Wysoka wartość tego parametru może zwiększyć rozmiar pliku, uniemożliwiając kodekowi użycie niższych przepływności.

-maxrate 40000000- Ta wartość kontroluje maksymalną szybkość transmisji serii w intensywnych scenach. Użyłem naprawdę wysokiej wartości, aby pozwolić kodekowi pójść znacznie wyżej niż pożądana średnia, jeśli uważa, że ​​wyższa prędkość jest obowiązkowa, aby utrzymać przyzwoitą jakość na niektórych scenach. Aby uzyskać dobrze wyglądający obraz w każdych warunkach, pożądane jest, aby ustawić go wystarczająco wysoko (40 Mb to prędkość podobna do BlueRay i załatwi sprawę). Z drugiej strony, jeśli zamierzasz przesyłać strumieniowo za pomocą własnego serwera, musisz zmniejszyć tę wartość kosztem pewnej jakości obrazu w intensywnych scenach. W przeciwnym razie serwer może nie poradzić sobie z żądaną szybkością transmisji bitów, ponieważ nie jest w stanie dostarczyć jej użytkownikom w czasie rzeczywistym. Następnie gracz napotkałby niedopełnienie bufora (co jest denerwujące). Usługi udostępniania wideo same zajmą się tym i zwykle konwertują wideo w dół, aby obniżyć parametry kosztem jakości obrazu.

recording-filename-000.webm- to nazwa pliku wyjściowego. Jeśli używasz rozszerzenia .webm, ffmpeg / avconv są wystarczająco inteligentne, aby zrozumieć, że chcesz WEBM. To TAKIE proste - avconv odgaduje pożądany format na podstawie nazwy pliku. Tak więc pliki .WEBM są wewnątrz WEBM.

To jest to - to polecenie powoduje bezpośrednie nagrywanie ekranu do pliku webm. Nie są wymagane żadne dodatkowe konwersje, a libvpxsugeruje się, aby był tak szybki, jak to możliwe. Brak dźwięku, ponieważ nie ma specyfikacji wejścia dźwięku. To może być lub nie być to, czego chcesz. W przypadku dźwięku należy również określić źródło wejściowe dla strumienia dźwięku.

PS może to wyglądać na nieco skomplikowane, ale na koniec możesz stwierdzić, że jeden rozmiar nie pasuje do wszystkich. Aby uzyskać dobrze wyglądający obraz we wszystkich sytuacjach, możesz naprawdę chcieć użyć niektórych uchwytów do kodeków i dostosować je. Ffmpeg oferuje wszystkie uchwyty, których możesz potrzebować, i znacznie więcej. To ciężka broń do konwersji i kodowania wideo. Dlatego ten przykład jest dobrym punktem wyjścia dla tych, którzy chcą wykonać mniej lub bardziej zaawansowane kodowanie i jest gotowy do eksperymentowania, aby uzyskać naprawdę przyzwoicie wyglądające wyniki.

Enkoder 1
źródło
6

Możesz tworzyć nagrania WebM w Ubuntu 11.10 + GNOME Shell, naciskając kombinację klawiszy Ctrl+ Shift+ Alt+ R.

Przy pierwszym naciśnięciu kombinacji pojawi się czerwone kółko w obszarze powiadomień, wskazując, że nagrywanie się rozpoczęło. Drugie naciśnięcie tego przycisku powoduje zniknięcie czerwonego kółka i zapisanie nagrania w ${HOME}/Videoskatalogu.

Więcej informacji tutaj: Gnome Shell Cheat Sheet: Nagrywanie screencastu

reygecko
źródło
Kiedy pierwotnie o to pytałem, nie miałem GNOME Shell. Ale kiedyś go kompilowałem z jhbuild10.10 i mam go zainstalowany na moich systemach 11.10 i wiem, że to również działa. Dziękujemy za dodanie tej odpowiedzi!
Christopher Kyle Horton
W bieżącej wersji (przy użyciu 16.04) filmy są przechowywane pod ~/Videosnazwą pliku Screencast from {date} {time}.webm.
Kariem
3

Aby to zrobić, użyj aplikacji transmageddon. jego aplikacja oparta na Gstreamer

sudo apt-get install transmageddon lub kliknij tutaj, zainstaluj transmageddon

alz3abi
źródło
Spojrzałem na zależności dla transmageddon poprzez sudo apt-get install, a wspomniany wyżej pakiet gstreamer-plugins-plugin został uwzględniony na liście. Znowu nie jestem pewien, czy jest to całkowicie legalne, a to ma dla mnie znaczenie.
Christopher Kyle Horton
2

Użyj Kazam do nagrywania.

Dane wyjściowe to mkv i działa dobrze z Youtube. Jedyny problem Wydaje się, że Kazam nie był przez jakiś czas aktualizowany.

BTW Powinieneś być bezpieczny używając Tibesti, jeśli dobrze rozumiem, chyba że jesteś absolutnie paranoikiem, że jakiś gigantyczny statek kosmiczny cię porwie i będzie cię torturowany za użycie oprogramowania ...

RolandiXor
źródło
Kazam prosi o instalację ffmpeg podczas instalacji sudo apt-get, czego nie jestem pewien, czy mógłbym legalnie z niego korzystać.
Christopher Kyle Horton
@ Warrioring64, nie sądzę, że ffmpeg jest nielegalny ...
RolandiXor
To coś, o co muszę się martwić, ponieważ jestem w USA i patenty na oprogramowanie są tutaj egzekwowane. Zajrzyj do tej części Wikipedii, jeśli to pomoże ci zrozumieć, o co tu chodzi.
Christopher Kyle Horton
2
@ Warrioring64 - wersja zawarta w Ubuntu jest pozbawiona tych kodeków.
RolandiXor
Okej ... ale patrząc dalej na podane zależności, znalazłem także libavcodec-extra-52 i libavutil-extra-52, które z nieco więcej badań, które znalazłem, mogą stanowić dla mnie problemy. Przepraszam, jeśli wydaje mi się to trochę trudne, ale nawet jeśli nie mogę realistycznie zostać przyłapany na korzystaniu z takiego oprogramowania, nadal nie chciałbym, aby działało to na moim sumieniu.
Christopher Kyle Horton
2

11.10 i wcześniejsze

ffmpegmoże być użyty do konwersji .ogv do .webm bezpośrednio, bez potrzeby stosowania dodatkowych kodeków. Jak wspomniano w komentarzu do innej odpowiedzi , wersja ffmpegdostarczana przez Ubuntu nie jest domyślnie dostarczana z kodekami, które mogą powodować problemy z patentami na oprogramowanie.

To jest program wiersza poleceń; aby z niego skorzystać, wystarczy otworzyć okno terminala i wprowadzić:

ffmpeg -i input.ogv output.webm
Christopher Kyle Horton
źródło
Tak. Właśnie zainstalowałem ffmpeg bez repozytorium medibuntu i ściągnąłem wszystkie darmowe wersje pakietów i łatwo zakodowałem wmv na webm za pomocą ffmpeg -i file.wmv -f webm -sameq file.webm
duffydack
1

imo, Najlepszym sposobem na konwersję filmów do WebM jest Firefogg .

  • To jest wtyczka Firefox (więc jest to narzędzie wieloplatformowe, jak Firefox)
  • Skompresuje się do formatu WebM (open source - kodek kompatybilny z siecią)
  • Oferuje wiele rozmiarów kodowania (naprawdę wygodne, aby uzyskać najlepszy współczynnik kompresji)
  • NAPRAWDĘ wydajny współczynnik kompresji (przynajmniej tyle co H264)
  • Jest bardzo łatwy w użyciu

wprowadź opis zdjęcia tutaj

Sulliwane
źródło