Multimedia

Install Kooha di Slackware

Kooha adalah salah satu aplikasi screen recorder. Keunggulannya antara lain:

  1. User interface atau tampilan yang simpel tapi tetap mudah dimengerti
  2. Bisa dijalankan dengan baik di lingkungan wayland dan X11
  3. Mudah dijalankan
  4. Mudah di-install.

Kooha menyediakan metode instalasi menggunakan flatpak. Inilah cara yang kami sarankan untuk slackers mengingat belum ada di SBo. Caranya

$ flatpak install io.github.seadve.Kooha

Mengatasi Audio Tanpa Suara ES8336

Sebenarnya sudah lama ingin menulis catatan ini, tapi berhubung baru ada kesempatan tertunda beberapa bulan. Awal tahun 2022 yang lalu, membeli laptop baru dengan spesifikasi

Processors: 4 × Intel® Celeron® J4125 CPU @ 2.00GHz
Memory: 11,5 GiB of RAM
Graphics Processor: Mesa Intel® UHD Graphics 600

dengan audio awalnya berupa dummy output alias tidak terdeteksi. Seiring waktu, ada dukungan dari kernel sehingga terdeteksi sebagai ES8336.

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sofessx8336 [sof-essx8336], device 0: ES8336 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofessx8336 [sof-essx8336], device 5: HDMI 1 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofessx8336 [sof-essx8336], device 6: HDMI 2 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofessx8336 [sof-essx8336], device 7: HDMI 3 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Keberhasilan deteksi ini ternyata tidak diikuti dengan munculnya suara dari speaker. Yah, laptop masih diam seribu bahasa. Sound Open Firmware memberikan secercah harapan. Apalagi kemudian sof-firmware masuk ke repo current. Namun sayang, laptop masih membisu. Beberapa kali upgrade kernel, alsa, pulseaudio dan pipewire, masih saja tak terdengar. Alhamdulillah kemudian menemukan solusi dari issue yang dibuat oleh junocom di github alsa-project/alsa-ucm-conf.

Enable Disable Pipewire Slackware

Catatan tentang pipewire sebenarnya sudah pernah dituliskan. Tetapi, biar tidak lupa dan lebih mudah mencarinya kala lupa, tidak ada salahnya dibuat catatan tersendiri. Bedanya, ini lebih singkat dan mudah dikerjakan.

Salah satu keberuntungan slackers adalah Patrick Volkerding menyediakan skrip untuk meng-enable dan disable pipewire. Skrip tersebut adalah

/usr/sbin/pipewire-enable.sh
/usr/sbin/pipewire-disable.sh

Silakan dieksekusi sesuai kebutuhan.

Install Sound Open Firmware

Langsung saja

cd /opt
git clone https://github.com/thesofproject/sof-bin.git
cd sof-bin

Masuk ke direktori rilis terbaru, contoh kali ini v2.2

cd v2.2.x
rsync -a sof-v2.2/ /lib/firmware/intel/sof/
rsync -a sof-tplg-v2.2 /lib/firmware/intel/sof-tplg/

Pipewire di WindowMaker

Lama tidak menggunakan, hati ini rindu pada WindowMaker. Segera mengalihkan .xinitrc ke xinitrc.wmaker. Beberapa hari kemudian, merasa ada yang janggal. Suasana menjadi sunyi senyap. Tanpa suara. Padahal ketika menggunakan KDE Plasma tidak ada masalah dengan sound system.

Hati ini baru sadar bahwa sound-nya telah diserahterimakan dari pulseaudio kepada pipewire. Baiklah, mari tambahkan beberapa baris berikut ke ~/GNUstep/Library/WindowMaker/autostart

#pipewire
/usr/bin/daemon -frB --pidfiles=~/.run --name=pipewire /usr/bin/pipewire &
/usr/bin/daemon -frB --pidfiles=~/.run --name=pipewire-pulse /usr/bin/pipewire-pulse &
/usr/bin/daemon -frB --pidfiles=~/.run --name=pipewire-media-session /usr/bin/pipewire-media-session &

Menggunakan pipewire

Salah satu fitur baru yang dihadirkan Slackware 15.0 adalah masuknya pipewire sebagai alternatif dari pulseaudio. Bagaimana penggunaanya? Silakan simak catatan berikut ini.

Pertama, edit /etc/pulse/client.conf. Ubah autospawn dari yes menjadi no.

Hapus /etc/xdg/autostart/pulseaudio.desktop atau rename menjadi file yang “tidak penting”.

Rename file berikut menjadi .desktop saja

  1. /etc/xdg/autostart/pipewire-media-session.desktop.sample
  2. /etc/xdg/autostart/pipewire-pulse.desktop.sample
  3. /etc/xdg/autostart/pipewire.desktop

Membuat background transparan krita

Untuk mengubah background gambar menjadi transparan, bisa dilakukan dengan mudah menggunakan krita. Klik menu Filter –> Colours –> Colour to Aplha. Color picker pilih warna background yang akan diganti menjadi transparan. Threshold atur 100 atau sesuai kebutuhan. Kemudian Ok.

Menghapus history QtAV Player

Untuk menghapus history atau riwayat video yang ditonton dengan QtAV Player ada 2 cara:

  1. melalui QtAV Player dengan klik History kemudian Clear
  2. menghapus file historynya
$ rm ~/.local/share/Player/*.qds

Command tersebut juga menghapus riwayat playlist

Edit video ffmpeg tanpa menurunkan kualitas

Ketika mengedit video menggunakan ffmpeg, filter video ataupun filter yang lebih kompleks seperti menambahkan watermark, tanpa pengaturan tambahan kadang hasilnya mengecewakan. Gambar pada video menjadi pecah. Untuk meminimalisirnya, bisa ditambahkan opsi -q:v 0.

Menggabungkan video ffmpeg

Sebelum menggabungkan video, agar optimal, video-video yang akan digabungkan harus mempunyai frame size, frame rate, rata-rata volume dan container/format yang sama. Misalkan akan digabungkan 4 file video, yaitu

  1. piknik-1.mkv
  2. piknik-2.mkv
  3. piknik-3.mkv
  4. piknik-4.mkv

Keempat file tersebut berada dalam folder yang sama. Kemudian mereka akan digabungkan menjadi piknik.mkv. Sebelum digabungkan, membuat list dulu bernama list-piknik yang juga berada sefolder dengan mereka berempat. List berisi video yang akan digabung.

$ vim list-piknik
file 'piknik-1.mkv'
file 'piknik-2.mkv'
file 'piknik-3.mkv'
file 'piknik-4.mkv'

Untuk menggabungnya

Mengetahui volume suara video

Sebelum menggabung-gabungkan beberapa video menjadi 1, penting untuk mengetahui berapa intensitas suara/volumenya, agar beberapa video itu bisa diatur sedemikian rupa sehingga suaranya seragam volumenya atau hampir sama dari awal sampai akhir.

Untuk mengetahui intensitas suara video intro.mkv

$ ffmpeg -i intro.mkv -filter:a volumedetect -f null /dev/null
Input #0, matroska,webm, from 'intro.mkv':
  Metadata:
    COMPATIBLE_BRANDS: isommp42
    COM.ANDROID.VERSION: 9
    MAJOR_BRAND     : mp42
    MINOR_VERSION   : 0
    ENCODER         : Lavf58.29.100
  Duration: 00:00:14.90, start: 0.000000, bitrate: 5559 kb/s
    Stream #0:0(eng): Video: mpeg4 (Simple Profile), yuv420p, 3840x2160 [SAR 1:1 DAR 16:9], 30 fps, 30 tbr, 1k tbn, 30 tbc (default)
    Metadata:
      HANDLER_NAME    : VideoHandle
      ENCODER         : Lavc58.54.100 mpeg4
      DURATION        : 00:00:14.900000000
    Stream #0:1(eng): Audio: vorbis, 48000 Hz, stereo, fltp (default)
    Metadata:
      HANDLER_NAME    : SoundHandle
      ENCODER         : Lavc58.54.100 libvorbis
      DURATION        : 00:00:14.849000000
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg4 (native) -> wrapped_avframe (native))
  Stream #0:1 -> #0:1 (vorbis (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, null, to '/dev/null':
  Metadata:
    COMPATIBLE_BRANDS: isommp42
    COM.ANDROID.VERSION: 9
    MAJOR_BRAND     : mp42
    MINOR_VERSION   : 0
    encoder         : Lavf58.29.100
    Stream #0:0(eng): Video: wrapped_avframe, yuv420p, 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 30 fps, 30 tbn, 30 tbc (default)
    Metadata:
      HANDLER_NAME    : VideoHandle
      DURATION        : 00:00:14.900000000
      encoder         : Lavc58.54.100 wrapped_avframe
    Stream #0:1(eng): Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s (default)
    Metadata:
      HANDLER_NAME    : SoundHandle
      DURATION        : 00:00:14.849000000
      encoder         : Lavc58.54.100 pcm_s16le
frame=  447 fps= 97 q=-0.0 Lsize=N/A time=00:00:14.90 bitrate=N/A speed=3.24x    
video:234kB audio:2784kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[Parsed_volumedetect_0 @ 0x1a28300] n_samples: 1425280
[Parsed_volumedetect_0 @ 0x1a28300] mean_volume: -12.1 dB
[Parsed_volumedetect_0 @ 0x1a28300] max_volume: 0.0 dB
[Parsed_volumedetect_0 @ 0x1a28300] histogram_0db: 10593

Dari hasil tersebut di atas, tampak bahwa rata-rata intensitas suara/volumenya -12,1 dB dengan maksimum 0,0 dB.

Menambah watermark gambar ke video dengan ffmpeg

Misalkan kita akan memberikan watermark berupa gambar logo.png ke video ramadhan.mkv. Watermark ditempatkan di pojok kiri bawah. Video dengan watermark diberi nama ramadhan-fix.mkv

ffmpeg -i ramadhan.mkv -i logo.png -filter_complex "overlay=x=0:y=(main_h-overlay-h)" ramadhan-fix.mkv

Keterangan opsi dan parameternya

-filter_complex : menggunakan filter yang kompleks
overlay : menambahkan watermark
x : posisi pada sumbu x, dihitung dari ujung kiri
y : posisi pada sumbu y, dihitung dari ujung atas
main_h : tinggi video
main_w : lebar video
overlay_h : tinggi gambar yang akan dijadikan watermark
overlay_w : lebar gambar yang akan dijadikan watermark

Mengubah resolusi video ffmpeg

Misalkan terdapat video VID20200509135621.mp4, dengan resolusi 3840x2160 SAR 1:1 DAR 16:9. Akan diubah resolusinya menjadi 1920x1080 dengan tetap memperhatikan SAR dan DAR. Video hasil scaling ini diberi nama VID20200509135621-1080p.mkv. Perubahan ini sekaligus konversi ke mkv agar menghemat space.

ffmpeg -i VID20200509135621.mp4 -vf "scale=1920:1080, setdar=16:9, setsar=1:1" VID20200509135621-1080p.mkv

Disable tampilan konfigurasi ffmpeg

Secara default, output ffmpeg akan menampilkan built configuration yang digunakan.

$ ffmpeg
ffmpeg version 4.2.2 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 9.2.0 (GCC)
  configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --docdir=/usr/doc/ffmpeg-4.2.2/html --mandir=/usr/man --disable-debug --enable-shared --disable-static --enable-gpl --enable-version3 --enable-avresample --arch=x86_64 --disable-encoder=aac --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gnutls --enable-libbluray --enable-libcaca --enable-libcdio --enable-libopus --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libmp3lame --enable-opencl --enable-opengl --enable-libopenjpeg --enable-libpulse --enable-libsmbclient --enable-libwavpack
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

Use -h to get full help or, even better, run 'man ffmpeg'

Menurut saya ini tidak perlu ditampilkan. Berdasarkan pengalaman selama ini menggunakan ffmpeg baik-baik saja. Informasi tersebut bisa dikatakan mubadzir. Lebih baik tidak ditampilkan. Caranya beri opsi

Edit volume suara

Editing kali ini adalah bagaimana mengubah volume default audio/suara menggunakan ffmpeg. Misal, file yang akan diinput/diedit adalah video.mp4. Karena suaranya terlalu pelan, akan dinaikkan menjadi 5x semula melalui filter audio. File hasil editan diberi nama video-louder.webm.

ffmpeg -i video.mp4 -filter:a "volume=5" video-louder.webm

Apabila suara terlalu nyaring bisa dipelankan. Berikut akan dipelankan menjadi setengahnya dari volume semula dan file baru diberi nama new.webm

ffmpeg -i video.mp4 -filter:a "volume=0.5" new.webm

Atau, dengan menuliskan volume suaranya secara langsung. Default aslinya 256. Misalkan akan dinaikkan menjadi 300 kemudian disimpan sebagai anyar.mkv

Trimming Video ffmpeg

Misalkan, kita akan mencuplik sebagian (trimming) video video-asli.mp4 dari menit ke 57 lebih 34 detik sampai durasi ke 1 jam 2 menit 5 detik. Fila hasil trimming adalah cuplikan.mp4

ffmpeg -i video-asli.mp4 -ss 00:57:34 -to 01:02:05 -c copy cuplikan.mp4

Download Video Youtube

Download video dari Youtube adalah hal yang mudah bagi pengguna Slackware. Paling tidak ada 2 cara. Cara pertama menggunakan peramban web, dan cara kedua menggunakan youtube-dl yang berantar muka teks. Di sini menggunakan cara kedua. Untuk menginstall youtube-dl silahkan [klik di sini]({% post_url 2015-10-01-install-youtubedl %}).

Cara menggunakannya

youtube-dl url_video_youtube

Contoh, akan URL video yang akan di download adalah https://www.youtube.com/watch?v=lGRQIBJ5FBE&index=1&list=PLB9F411241A111B54.

youtube-dl https://www.youtube.com/watch?v=lGRQIBJ5FBE&index=1&list=PLB9F411241A111B54

Kalau ada beberapa video yang ingin didownload, masukkan saja URLnya ke satu file, tiap baris 1 URL, kemudian cara downloadnya tambahkan opsi -a

Install Youtube Downloader

Siapa bilang pakai Slackware ga bisa download video dari Youtube? Bisa kok pakai youtube-dl.Cara installnya gampang. Pastikan terhubung ke internet untuk mengunduh berkasnya. Dan untuk install butuh hak akses root. Di sini kita pakai cara yang mudah saja, install dari slackbuilds.org.

cd /usr/local/src
wget http://slackbuilds.org/slackbuilds/14.1/network/youtube-dl.tar.gz
tar xzf youtube-dl.tar.gz
cd youtube-dl
wget https://github.com/rg3/youtube-dl/archive/2015.09.22.tar.gz
sh youtube-dl.SlackBuild
installpkg /tmp/youtube-dl-2015.09.22-x86_64-1_SBo.tgz