ffmpeg 命令整理

从 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

./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

转载规则

《ffmpeg 命令整理》Konata 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
  目录