用ffmpeg标记音频文件

  • 安装 ffmpeg

nix-env -iA nixpkgs.ffmpeg
  • 导出标记

ffmpeg -i track12.mp3 -f ffmetadata metadata.txt
ffmpeg -i "timeless方大同 - 10 Moon River.flac" -f ffmetadata metadata.txt
  • 提取封面图片

ffmpeg -i track12.mp3 cover.jpg

# 添加封面图并另存为音乐
ffmpeg -y -i track12.mp3 -i cover.jpg -map 0:0 -map 1:0 -c copy -id3v2_version 3 track12_new.mp3

ffmpeg -i op.mkv -s 320*240 -vf subtitles=op.mkv op_min.avi

mp3转m4a

ffmpeg -i ai.mp3 -ab 320k op_min.m4a ffmpeg -i ai.mp3 -ss 00:00:20 -ab 320k op_min3.m4a

  • 视频转gif

ffmpeg -i VID_20230601_221632.mp4 -ss 00:00:00.500 -t 2 -r 15 -s 480x272 out1.gif

  • 视频截取

# 视频截取 从25s-00:06:32
ffmpeg -i docker.mp4 -ss 25 -to 00:06:32 -avoid_negative_ts make_zero output.mp4
  • 字幕偏移

# 先再波峰文件再打开srt文件的时间计算偏移时间

# 负数向前, 正数向后
ffmpeg -itsoffset -21.6 \
  -i origin.srt \
  -y \
  -c copy subtitles_delayed.srt
  • 封装视频+字幕

# 且分别设置视频,音频,字幕的语言标记; 数字0就是第n+1个轨道
ffmpeg \
  -i Iron.Man.2008.1080p.BrRip.x264.YIFY.mp4 \
  -i test.srt \
  -c copy \
  -metadata:s:v:0 language=en \
  -metadata:s:a:0 language=en \
  -metadata:s:s:0 language=zh \
  output_video.mkv

# 导出字幕文件
ffmpeg -i output_video.mkv
# ffmpeg -i output_video.mkv -map 0:[index] from_mkv.srt
ffmpeg -i output_video.mkv -map 0:2 from_mkv.srt
# 也可以导出音频
# ffmpeg -i output_video.mkv -map 0:1 from_mkv.aac