从 MP4 中提取 M4A
ffmpeg -i input.mp4 -vn -c:a copy output.m4a
无损切割音频
ss
: 起始秒t
: 持续秒数
ffmpeg -ss 5990 -i in.aac -t 181 -c copy out.m4a
输出 YUV4MPEG2
ffmpeg -y -i input.mp4 -pix_fmt yuv420p output.y4m
视频转图片序列
ffmpeg -i input.mp4 -vf fps=30/1.001 %0d.jpg # 29.97fps 的视频,每帧都取
ffmpeg -i input.mp4 -vf fps=1/60 %0d.png # 每 60 帧抽取一幅图片
Opus 转 CAF 封装
ffmpeg -i input.opus -c:a copy output.caf
局域网直播本地视频设备
Server
ffmpeg -re -f 捕获驱动 -video_size 640x480 -r 30 -i 设备 -acodec none -b:v 1M -fflags nobuffer -f mpegts udp://239.255.1.2:1234
^分辨率 ^帧率 ^无音频 ^视频码率 ^视频编码
macOS 可能需要去掉
-re
选项
可以加入
-vcodec libx264 -tune zerolatency
提高低码率高分辨率下的画质,但也会增加延迟
捕获驱动根据系统有所不同:
- macOS/iOS/iPadOS:
avfoundation
- Linux:
video4linux2
- Windows:
dshow
视频设备可以用以下命令查看:
- macOS/iOS/iPadOS:
ffmpeg -f avfoundation -list_devices true -i ""
- Linux:
ls -l /dev | grep video
- Windows:
ffmpeg -f dshow -list_devices true-i dummy
Client
ffplay -fflags nobuffer -flags low_delay -sync ext udp://239.255.1.2:1234
ffmpeg 编译记录
环境
- CPU: ARMv8 ARM Cortex-A57 Tegra X1
- GPU: Maxwell
- OS: Ubuntu 20.04.5 LTS Linux 4.9.253
依赖
apt install libchromaprint-dev frei0r-plugins-dev libgnutls28-dev ladspa-sdk libaom-dev liblilv-dev libiec61883-dev libavc1394-dev libass-dev libbluray-dev libbs2b-dev libcaca-dev libcodec2-dev flite1-dev libflite1 libgme-dev libgsm1-dev libmysofa-dev libopenjp2-7-dev libopenmpt-dev libopus-dev libpulse-dev librsvg2-dev librubberband-dev libshine-dev libsnappy-dev libsoxr-dev libssh-dev libspeex-dev libtwolame-dev libvidstab-dev libvpx-dev libwavpack-dev libwebp-dev libx265-dev libzmq3-dev libzvbi-dev libopenal-dev opencl-headers libjack-dev libcdio-paranoia-dev libcdio-dev libcdparanoia-dev libsdl2-dev libfdk-aac-dev
编译配置
./configure --prefix=/usr --enable-gpl --enable-nonfree --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-nvmpi --enable-libfdk-aac
环境
- CPU: ARMv8 ARM Cortex-A76 + Cortex-A57 RK3588S
- GPU: Mali-G610 MP4
- OS: Ubuntu 22.04.2 LTS Linux 5.10.110
依赖
apt install pkg-config cmake libdav1d-dev libdc1394-dev libmp3lame-dev libsmbclient-dev libtheora-dev libx264-dev libxvidcore-dev libzimg-dev libchromaprint-dev frei0r-plugins-dev libgnutls28-dev ladspa-sdk libaom-dev liblilv-dev libiec61883-dev libavc1394-dev libass-dev libbluray-dev libbs2b-dev libcaca-dev libcodec2-dev flite1-dev libflite1 libgme-dev libgsm1-dev libmysofa-dev libopenjp2-7-dev libopenmpt-dev libopus-dev libpulse-dev librsvg2-dev librubberband-dev libshine-dev libsnappy-dev libsoxr-dev libssh-dev libspeex-dev libtwolame-dev libvidstab-dev libvpx-dev libwavpack-dev libwebp-dev libx265-dev libzmq3-dev libzvbi-dev libopenal-dev opencl-headers libjack-dev libcdio-paranoia-dev libcdio-dev libcdparanoia-dev libsdl2-dev libfdk-aac-dev
编译配置
./configure --prefix=/usr --enable-gpl --enable-nonfree --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzimg --enable-libzvbi --enable-lv2 --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libsmbclient --enable-version3 --enable-libfdk-aac --enable-libdav1d --enable-rkmpp --enable-librgaf