(Yes I know there are repos to get binaries for some, things like deb-multimedia.)
The hardest part IMO is getting the necessary codecs to work; this can take a little while. If you know what audio and video codecs you want and need, and if you get them installed properly, then compiling ffmpeg is really simple and straightforward. It works almost always for me, and I have compiled ffmpeg from source for like +10 or even +15 years.
For reference purposes, my current configure options are:
./configure --prefix=/usr/ --enable-gnutls --enable-gpl --enable-libmp3lame --enable-libaom --enable-libopus --enable-libspeex --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libxvid --enable-libx264 --enable-libx265 --enable-nonfree --enable-pthreads --enable-shared --enable-version3 --extra-libs=\"-ldl\" --disable-doc --disable-libopenjpeg --disable-libpulse --disable-static
Probably more codecs could be added, and some options may not be necessary anymore (I changed this last ... years ago, too), but this works for the most part fairly well.One focus I have is mostly on a few .mp4 files, and for these I think you kind of want x264 x265 and so forth (I think one more codec from google too or so). But it is really quite trivial once you are past the codecs step. You can also start simple with just a few codecs, e. g. one good audio codec and one good video codec. One reason I like to have ffmpeg support many codecs is so I can use mpv, which in itself is really awesome; I like it more than vlc, which is also ok though.
If anyone remembers, avisynth was pretty cool back in the days. You could kind of script video/audio manipulations, a bit like a UNIX/Linux pipe, but kind of simpler, in my opinion. FFmpeg allows for many similar operations, but remembering anything here is ... hard. I'd love for the whole usage API to become much simpler, but it seems nobody among the ffmpeg dev team is considering this. :(
I can't be the only one with that wish though ...
It does not diminish ffmpeg being so great in general, but I think it could be better.
gyan•2h ago
ffprobe -codec option
EXIF Metadata Parsing
gfxcapture: Windows.Graphics.Capture based window/monitor capture
hxvs demuxer for HXVS/HXVT IP camera format
MPEG-H 3D Audio decoding via mpeghdec
D3D12 H.264 encoder
drawvg filter via libcairo
ffmpeg CLI tiled HEIF support
D3D12 AV1 encoder
ProRes Vulkan hwaccel
DPX Vulkan hwaccel
Rockchip H.264/HEVC hardware encoder
Add vf_scale_d3d12 filter
JPEG-XS parser
JPEG-XS decoder and encoder through libsvtjpegxs
JPEG-XS raw bitstream muxer and demuxer
IAMF Projection mode Ambisonic Audio Elements muxing and demuxing
Add vf_mestimate_d3d12 filter
xHE-AAC Mps212 decoding support (experimental)
Remove the old HLS protocol handler
Vulkan compute codec optimizations
swscale Vulkan support
LCEVC metadata bitstream filter
Add vf_deinterlace_d3d12 filter
ffprobe: only show refs field in stream section when reading frames
ProRes Vulkan encoder
LCEVC parser
LCEVC enhancement layer exporting in MPEG-TS
yboris•1h ago
Additionally, JPEG XS compressed content is indistinguishable from the original uncompressed content.
https://en.wikipedia.org/wiki/JPEG_XS
CharlesW•55m ago
It can be indistinguishable, as long as you stick with lossless or very low compression ratios. It falls apart at typical JPEG XL compression ratios.
iso1631•54m ago
voidUpdate•52m ago
pjc50•33m ago
zamadatix•5m ago
bydo•28m ago
johntb86•26m ago
bob1029•1h ago
> This source provides low overhead capture of application windows or entire monitors. The filter outputs hardware frames in d3d11 format; use hwdownload,format= if system memory frames are required.
This would strongly alter my plans if I were to develop an OSS Discord alternative. Chromium originally looked like a better core to start with largely due to its mature screen capture API. WebRTC is the other big thing, but there are other ways to do that. Native desktop apps (i.e., not browser based) are beginning to look much more compelling to me now.
lostmsu•1h ago
pjc50•35m ago
I wonder if "entire chat app functions as OBS plugin" would work? Would solve the AV streaming side of the functionality.