Grabar archivo de video (al grabar de esta forma solo estás usando el procesador sin la tarjeta gráfica):
ffmpeg -f alsa -i pipewire -f fbdev -r 60 -i /dev/fb0 mamita.mp4
Este es el comando que uso para grabar y tiene menos lag.
ffmpeg \
-f fbdev -framerate 60 -i /dev/fb0 \
-f alsa -i pipewire \
-c:v libx264 -preset ultrafast -pix_fmt yuv420p \
-c:a aac -b:a 128k \
-async 1 -ar 48000 -latency 100 \
prueba.mp4
peg-this (ffmpeg TUI):
python -m venv peg_this
source peg_this/bin/activate or source peg_this/bin/activate.fish (si usas fish)
pip install peg-this
peg_this
# Lento
ffmpeg -i input.mp4 -af "volume=4.0" output.mp4
# Rapido pero no anda (es rapido porque copia)
ffmpeg -i input.m4a -c:a copy -af "volume=4.0" output.m4a
ffmpeg -f alsa -i pipewire -thread_queue_size 1024 -f fbdev -framerate 60 -i /dev/fb0 -f v4l2 -framerate 60 -video_size 320x240 -i /dev/video0 -filter_complex "[2:v]scale=320:240[cam];[1:v][cam]overlay=main_w-overlay_w-10:main_h-overlay_h-10[outv]" -map "[outv]" -map 0:a -c:v libx264 -preset ultrafast -tune zerolatency -pix_fmt yuv420p -c:a aac -b:a 128k -f flv -bufsize 1000k rtmp://a.rtmp.youtube.com/live2/stream
ffmpeg -f alsa -i pipewire -thread_queue_size 1024 -f fbdev -framerate 60 -i /dev/fb0 -c:v libx264 -preset ultrafast -tune zerolatency -pix_fmt yuv420p -c:a aac -b:a 128k -f flv -bufsize 1000k
v4l2-ctl --list-formats-ext
.ffmpeg -f alsa -i pipewire -thread_queue_size 1024 -f v4l2 -framerate 60 -video_size 1280x720 -i /dev/video0 -c:v libx264 -preset ultrafast -tune zerolatency -pix_fmt yuv420p -c:a aac -b:a 128k -f flv -bufsize 1000k rtmp://a.rtmp.youtube.com/live2/stream_key
python -m venv chat-downloader
source chat-downloader/bin/active
pip install chat-downloader
chat_downloader "https://www.youtube.com/watch?v=TU_ID_DEL_VIDEO"
ffmpeg -f alsa -i pipewire -thread_queue_size 1024 -f fbdev -framerate 60 -i /dev/fb0 -f v4l2 -framerate 60 -video_size 320x240 -i /dev/video0 -filter_complex "[2:v]scale=320:240[cam];[1:v][cam]overlay=main_w-overlay_w-10:main_h-overlay_h-10[outv]" -map
"[outv]" -map 0:a -c:v libx264 -preset ultrafast -tune zerolatency -pix_fmt yuv420p -c:a aac -b:a 128k -f flv -bufsize 1000k rtmp://a.rtmp.youtube.com/live2/stream_key
ffmpeg -device /dev/dri/card1 -f kmsgrab -framerate 30 -i - -vf 'hwdownload,format=bgr0' -c:v libx264 output.mkv
ffmpeg -device /dev/dri/card1 -f kmsgrab -framerate 30 -i - -vf 'hwmap=derive_device=vaapi,format=nv12,hwdownload,format=bgr0' -c:v libx264 output.mkv
ffmpeg -device /dev/dri/card1 -f kmsgrab -framerate 30 -i - -vf 'hwmap=derive_device=vaapi,format=nv12,hwdownload,format=bgr0' -c:v libx264 output.mkv
Si tu hardware soporta VAAPI, podés ganar rendimiento cambiando -c:v libx264 por -c:v h264_vaapi.
sudo setcap cap_sys_admin+ep $(which ffmpeg)
Para bajar el volumen del micrófono: bajá el volumen Internal Mic B
en alsamixer
y Mic Boost
y Mic
.
ffmpeg -f pipewire -framerate 30 -video_size 1920x1080 -i @DEFAULT_VIDEOSOURCE@ \
-f pulse -i default \
-c:v libx264 -preset veryfast -b:v 4500k -c:a aac -b:a 128k -f flv \
"rtmp://a.rtmp.youtube.com/live2/YOUR_STREAM_KEY"
ffmpeg -f pipewire -framerate 30 -video_size 1920x1080 -i @DEFAULT_VIDEOSOURCE@ \
-f pulse -i default \
-f v4l2 -framerate 60 -video_size 640x480 -i /dev/video0
-filter_complex "[2:v]scale=320:240[cam];[1:v][cam]overlay=main_w-overlay_w-10:main_h-overlay_h-10[outv]" -map "[outv]" -map 0:a
-c:v libx264 -preset veryfast -b:v 4500k -c:a aac -b:a 128k -f flv \
"rtmp://a.rtmp.youtube.com/live2/YOUR_STREAM_KEY"
#!/bin/bash
sudo chmod 666 /dev/input/event*
amixer set 'Internal Mic Boost' 50%-
falkon "https://www.youtube.com/live_dashboard"
### Solo tty
ffmpeg -f alsa -i pipewire -thread_queue_size 1024 -f fbdev -framerate 60 -i /dev/fb0 -c:v libx264 -preset ultrafast -tune zerolatency -pix_fmt yuv420p -c:a aac -b:a 128k -f flv -bufsize 1000k rtmp://a.rtmp.youtube.com/live2/STREAM_KEY 2> /dev/null
#!/bin/bash
sudo chmod 666 /dev/input/event*
amixer set 'Internal Mic Boost' 50%-
#falkon "https://www.youtube.com/live_dashboard"
### Solo tty
#ffmpeg -f alsa -i pipewire -thread_queue_size 1024 -f fbdev -framerate 60 -i /dev/fb0 -c:v libx264 -preset ultrafast -tune zerolatency -pix_fmt yuv420p -c:a aac -b:a 128k -f flv -async 1 -ar 48000 -latency 100 -bufsize 1000k rtmp://a.rtmp.youtube.com/live2/KEY 2> /dev/null
#### Camara con tty
ffmpeg -f alsa -i pipewire -thread_queue_size 1024 -f fbdev -framerate 60 -i /dev/fb0 -f v4l2 -framerate 60 -video_size 320x240 -i /dev/video0 -filter_complex "[2:v]scale=320:240[cam];[1:v][cam]overlay=main_w-overlay_w-10:main_h-overlay_h-10[outv]" -map "[outv]" -map 0:a -c:v libx264 -preset ultrafast -tune zerolatency -pix_fmt yuv420p -c:a aac -b:a 128k -f flv -bufsize 1000k rtmp://a.rtmp.youtube.com/live2/KEY 2> /dev/null
### Solo camara
#ffmpeg -f alsa -i pipewire -thread_queue_size 1024 -f v4l2 -framerate 60 -video_size 1280x720 -i /dev/video0 -c:v libx264 -preset ultrafast -tune zerolatency -pix_fmt yuv420p -c:a aac -b:a 128k -f flv -bufsize 1000k rtmp://a.rtmp.youtube.com/live2/KEY 2> /dev/null
Para poder streamear falkon o qutebrowser desde la TTY usa:
export QT_QPA_PLATFORM=linuxfb
export QTWEBENGINE_CHROMIUM_FLAGS="--ignore-gpu-blacklist --disable-gpu"
Para verificar si está transmitiendo:
mpv "https://www.youtube.com/channel/CHANNEL\_ID/live"