ffmpeg mkv 到 mp4 转换器丢失了部分音频,如何在 python 中配置?

ffmpeg mkv to mp4 converter drops part of the audio, how to configure in python?

我正在通过 ffmpeg 和 python 将几个 mkv 文件转换为 mp4。然而,当我去播放它们时,背景音频是完美同步的,但就好像它放弃了所有的声音。有没有办法将所有音频设置为单声道?

或者如何指定通道数?

以下音频和视频设置适用于 vlc:

video settings:
Codec = H-265
bitrate = 800 kb/s

audio settings:
Codec = MP3
bitrate = 128 kb/s
channels = 2
sample rate = 8000Hz

我的python代码:

import os
import ffmpeg
import glob

start_dir = os.chdir("C:/Users/Me/Downloads/")
files = [file for file in glob.glob("*.mkv")]

def convert_to_mp4(mkv_file):
    name, ext = os.path.splitext(mkv_file)
    out_name = name + ".mp4"
    ffmpeg.input(mkv_file).output(out_name).run()
    print("Finished converting {}".format(mkv_file))

print(os.getcwd())
for path, folder, files in os.walk(os.getcwd()):
    for file in files:
        if file.endswith('.mkv'):
            print("Found file: %s" % file)
            convert_to_mp4(os.path.join(os.getcwd(), file))
        else:
            pass

我还使用 FFMPEG 将文件从 .mkv 转换为 .mp4,但在音频方面遇到了同样的问题。所以,我转而使用 moviepy 库来转换它而不会丢失音频。

您可以通过在 clip.write_videofile() 的参数中提及视频编解码器和音频编解码器来简单地使用它,如下所述:

import moviepy.editor as movpy

clip = movpy.VideoFileClip("video.mkv") #Reading .mkv file
clip.write_videofile("video.mp4", codec="libx264",audio_codec="aac") #Writing .mp4 file