参考 | ffmpeg 修改多音轨视频的默认音轨

参考 | ffmpeg 修改多音轨视频的默认音轨

0. 起因

  • 我找的 Ben10 资源没有字幕(Google 也找不到 (英文字幕也没有
  • 我想用 飞书的妙记功能 提取字幕
  • 我找到的资源是 .mkv 格式
  • 飞书的妙记功能不支持 mkv格式
  • 我转成 .MP4 文件重新上传 发现视频太大 耗时太长
  • 我就想到了用Pyhton先把音轨提取出来 然后再用 妙记
  • 结果视频的默认轨道1是俄语, 音轨2才是英语
  • Python用的是 from moviepy.editor import VideoFileClip 来提取音轨, 实在找不到怎样将音轨2提取出来
  • 那没办法 只能用 ffmpeg 修改默认轨道, 将轨道12对调

1. 解决

a. 先安装 ffmpeg

  1. 这里提供一个 ffmpeg 5.0.1下载链接, 点击即可下载

  2. 下载到一个文件夹后, 解压

  3. 找到 ffmpeg.exe 的所在路径路径, 复制
    在这里插入图片描述

  4. 打开 用户/系统环境变量ffmpeg.exe 的绝对路径加入
    在这里插入图片描述

  5. 打开 cmd / power shell 输入 ffmpeg 显示以下内容, 则配置成功
    在这里插入图片描述

b. 修改视频的默认音轨

其实到这一步, 只需要一条命令就好了:

ffmpeg -i ( ) -map 0:0 -map 0:2 -map 0:1 -c copy -disposition:a:0 default -y ( )
这里要注意的是:

  1. 第一个( ) 填的是你要处理的那个视频文件名
  2. 第二个( ) 填的是你处理完后要输出的文件名, 要写全, 比如 output.mp4

这里有几个参数介绍一下:

  1. 第一个 -map 0:0 这里指的是处理视频的动画,
    冒号前的0 指的是现在这个map参数要设置的是这个视频的动画,
    冒号后的0 指的是将这个视频的动画, 设置为, 这个视频的动画
    说人话就是, 处理后的视频, 动画还是这个动画, 不变
  2. 第二个 -map 0:2 这里处理的是视频第一个音轨,
    冒号前的0 代表的是现在这个map参数要设置的是这个视频的第一个音轨
    冒号后的2 指的是原视频本来的第二个音轨
    说人话就是, 我现在要把原视频的第二个音轨设置成放在这个视频的第一个音轨上
  3. 第三个 -map 0:1 与上面同理
    说人话就是, 我现在要把原视频的第一个音轨设置成放在这个视频的第二个音轨上

举个例子: 我现在将Ben 10 Ultimate Alien S02 E05 第二个音轨(英文)和第一个音轨(俄语) 对调:
ffmpeg -i .\E05.Girl.Trouble.mkv -map 0:0 -map 0:2 -map 0:1 -c copy -disposition:a:0 default -y output.mp4

(base) PS E:\0_SmallTools\2Ipod\tmp> ffmpeg -i .\E05.Girl.Trouble.mkv -map 0:0 -map 0:2 -map 0:1 -c copy -disposition:a:0 default -y output.mp4
ffmpeg version 5.0.1-essentials_build-www.gyan.dev Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 11.2.0 (Rev7, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband
  libavutil      57. 17.100 / 57. 17.100
  libavcodec     59. 18.100 / 59. 18.100
  libavformat    59. 16.100 / 59. 16.100
  libavdevice    59.  4.100 / 59.  4.100
  libavfilter     8. 24.100 /  8. 24.100
  libswscale      6.  4.100 /  6.  4.100
  libswresample   4.  3.100 /  4.  3.100
  libpostproc    56.  3.100 / 56.  3.100
Input #0, matroska,webm, from '.\E05.Girl.Trouble.mkv':
  Metadata:
    encoder         : libebml v1.2.0 + libmatroska v1.1.0
    creation_time   : 2011-09-27T18:38:40.000000Z
  Duration: 00:22:12.80, start: 0.000000, bitrate: 1618 kb/s
  Stream #0:0(eng): Video: h264 (Constrained Baseline), yuv420p(tv, smpte170m/smpte170m/bt709, progressive), 640x360, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 1k tbn (default)
    Metadata:
      title           : WEB-DL. El'Drako, RuTracker.Org
  Stream #0:1(rus): Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s (default)
    Metadata:
      title           : Дубляж CNW
  Stream #0:2(eng): Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
    Metadata:
      title           : Original
[mp4 @ 000001b56864c0c0] track 1: codec frame size is not set
[mp4 @ 000001b56864c0c0] track 2: codec frame size is not set
Output #0, mp4, to 'output.mp4':
  Metadata:
    encoder         : Lavf59.16.100
  Stream #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(tv, smpte170m/smpte170m/bt709, progressive), 640x360 [SAR 1:1 DAR 16:9], q=2-31, 23.98 fps, 23.98 tbr, 16k tbn (default)
    Metadata:
      title           : WEB-DL. El'Drako, RuTracker.Org
  Stream #0:1(eng): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, stereo, fltp, 192 kb/s (default)
    Metadata:
      title           : Original
  Stream #0:2(rus): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, stereo, fltp, 192 kb/s (default)
    Metadata:
      title           : Дубляж CNW
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:2 -> #0:1 (copy)
  Stream #0:1 -> #0:2 (copy)
Press [q] to stop, [?] for help
frame=31954 fps=0.0 q=-1.0 Lsize=  263635kB time=00:22:12.80 bitrate=1620.4kbits/s speed=1.74e+03x
video:200436kB audio:62474kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.275948%

完成!

猜你喜欢

转载自blog.csdn.net/JackyAce6880/article/details/125713622