Kilka programów konsolowych, które moim zdaniem warto znać

Istnieje kilka komend, które są bardzo pożyteczne. Wszystkie są darmowe i otwartoźródłowe ;)

youtube-dl

Youtube-dl jest skryptem służącym do pobierania plików audio/video ze stron internetowych. Potrafi pobierać całe kanały, napisy do filmów i playlisty. Obsługuje wiele stron internetowych, w tym vod.tvp.pl, tvn24 i cda. Zaleca się zainstalowanie ffmpeg lub avconv, ponieważ np. na YouTube video i audio są oddzielnie. Jak zainstalować youtube-dl na Androidzie? Zainstaluj ze sklepu play termux, następnie uruchom apt update && apt install ffmpeg python i pip install youtube-dl. Aby sprawdzić, w którym katalogu aktualnie się znajdujesz, użyj komendy pwd . Aby zapisywać dane na zewnętrznych pamięciach użyj termux-setup-storage i przejdź do storage/external-1 (dane będą na tym danym nośniku w katalogu Android/data/com.termux/files/).

FFmpeg 

FFmpeg to kompletne rozwiązanie do odtwarzania, nagrywania, edytowania, konwenterowania i strumieniowania audio/video. Obsługuje długą listę kodeków i działa na platformach x86, amd64, arm, arm64 i mips. Za jego pomocą mając manifest m3u8 telewizji na żywo online byłem w stanie nagrywać telewizję. 

Ffmpeg jest bardzo pomocny, gdy np. mam pobraną playlistę mającą ponad 100 filmów i muszę ją przekonwenterować. abym mógł oglądać te filmy na telewizorze.

FFmpeg powinien być skompilowany ze wsparciem dla omx dla systemów arm, w innym wypadku wydajność encoding/decoding video będzie niska.

Programy wchodzące w skład FFmpeg:

ffmpeg - konwenter video, jest w stanie również nagrywać pulpit i obraz z kamery,

ffplay - nieinteraktywny odtwarzacz video. Z jego pomocą możesz zobaczyć, jak wyglądałoby video przetworzone przez ffmpeg, ponieważ ffplay działa tak samo jak ffmpeg tylko nie zapisuje, lecz odtwarza, 

ffserver - służy do strumieniowania video. W przyszłości pozostanie porzucony (ffmpeg przejmie jego funkcje)

ffprobe - służy do wyświetlania informacji na tematu pliku/streamu (pełni tę samą funkcję co ffmpeg -i plik.mkv).

Najważniejsze komendy:

-i input, plik wejściowy np -i film.mkv, -i - (aby odczytywał dane z stdin),

-codecs wyświetla dostępne kodeki,

-c wybiera kodek do pliku wyjściowego np -c libmp3lame (mp3) -c:v copy (nie przetwarzaj streamu video, po prostu kopiuj),

-vf użyj filtru video np -vf reverse (film jest od tyłu),

-af użyj filtru audio np -af areverse (dźwięk od tyłu),

-s ustawia rozdzielczość filmu wyjściowego w px np -s 1920x1080,

-r ustawia ilość klatek na sekundę, np. -r 25

Przykładowa komenda, jak nagrać video z kamerki internetowej z dźwiękiem:

ffmpeg -f v4l2 -i /dev/video0 -s 1920x1080 -r 25 -c h264 -f alsa -i hw:0 -f matroska output.mkv

v4l2 jest to video4linux2 (video dla linuksa 2), jest to podsystem linuksa do obsługiwania kamer, a alsa to advanced linux sound architecture służący do obsługi urządzeń audio. Te podsystemy są częścią Linux Kernel (linux może być skompliowany bez wsparcia dla tych podsystemów i tym samym dla wielu urządzeń.

mplayer

mplayer jest interaktywnym odtwarzaczem video. Korzysta z libavcodec. Skompilowany z libdvdcss jest w stanie zgrywać zabezpieczone przed kopiowaniem płyty dvd (opcja dumpstream). Za pomocą klawiszy można łatwo sterować odtwarzaniem filmu. Bardzo szybko opanowałem to sterowanie.

o - On-Sreen Display, OSD, wyświetla sekundy odtwarzanego filmu, następne wciśnienie wyświetla również ukośnik i całkowitą długość filmu (00:15:02/1:40:00) w formacie HH:MM:SS, następne naciśniecie wyłącza OSD, a następne włącza 

[ ] - kwadratowe nawiasy służą sterowaniem prędkością filmu 

( ) - głośność

m - mute, wycisz

spacja - pauza

strzałka w prawo/strzałka w lewo - przesuwanie filmu 

Mając raspberrypi 3b chciałem odtwarzać filmy, jednak nie mogłem, ponieważ sprzęt nie nadążał. Stąd też moja uwaga. Jeśli chcesz odtwarzać filmy na systemach arm, sprawdź w /proc/cpuinfo, czy procesor wspiera instrukcje neon lub vector floating point (vfp) i skompiluj mplayer'a z opcją --enable-neon (więcej tutaj).

Mplayer jest przeportowany na Windows, jednak nie polecam korzystać z niego, ponieważ jest wadliwy.

qemu

qemu jest menadżerem maszyn wirtualnych o ogromnych możliwościach. Wspiera wiele platform sprzętowych. W skład qemu wchodzą:

qemu-img - służy do tworzenia, edytowania i wirtualnych dysków. Microsoft udostępnił maszyny wirtualne, aby użytkownicy mogli testować Internet Explorer (wtedy był jeszcze dostępny Windows XP do pobrania, pobrałem) i za pomocą qemu-img nagrałem na dysk ten system. Wszystko działało. 

qemu-arm - emuluje procesor arm, za pomocą tego programu można uruchomić programy skompilowane dla arm na innej architekturze sprzętowej. qemu-arm to tylko przykład, jest jeszcze kilka innych programów, np. qemu-mips , qemu-x86. Dlatego kiedy Microsoft przedstawił laptop z procesorem arm uruchamiający photoshopa skompilowanego na amd64 nie zrobiło to dla mnie żadnego wrażenia, ponieważ wiedziałem, że to nie jest żadna nowość. 

qemu-system-x86_64 - maszyna wirtualna

Przykładowa komenda (Linux)

qemu-system-x86_64 -cdrom /dev/sr0 -hda dysk.raw -m size=4096M -cpu pentium3 -boot d

Podczas uruchomionej maszyny wirtualnej jest aktywny "monitor". Jest to konsola poleceń qemu. Jest możliwość skompilowania Seabios (i skonfigurowania przez make menuconfig), taki ręcznie skompilowany bios może być użyty z qemu (-bios ~/Pobrane/seabios/bin/Seabios.bin)

Dla dystrybucji linuksa dostępny jest virt-manager jako qemu z interfejsem graficznym, a na Androidzie jest dostępny Limbo PC Emulator. 

Wszystkie programy opisane tutaj zrobiły na mnie ogromne wrażenie swoimi sporymi możliwościami. Jeśli macie jakieś propozycje, o czym powinienem napisać w następnym wpisie, napiszcie w komentarzu. Następny wpis będzie miał tytuł "Jak zainstalować Windows na RAMdysku" (dzięki Twój_Nick).