在Flutter中合并视频和音频

3

大家好,我需要一些有关在Flutter中合并视频和音频的建议。我能够使用以下FFmpeg命令实现它,但是输出视频质量很差,尽管大小几乎与原始视频相同。是否有其他比FFmpeg更轻松易用的插件?如果没有,如何确保FFmpeg不会影响视频的质量。

flutterFFmpeg
              .execute("-y -i $recordingFilePath -i $selectedSoundPath -map 0:v -map 1:a  -shortest $mergedFilePath")
2个回答

0
final FlutterFFmpeg flutterFFmpeg = FlutterFFmpeg();

// inputVideoPath => video path from local storage or record from camera
// backgroundMusicPath => music path from local storage
// time => output video time
// outputVideoPath => path for save to local storage

/// Merge audio with video
await flutterFFmpeg
    .execute("""-r 15 -f mp4 -i "$inputVideoPath" -f mp3 -i "$backgroundMusicPath" -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 -t $time -y $outputVideoPath""").then(
        (return_code) => print("0 Return code for success: $return_code"));

/// Merge audio with video
await flutterFFmpeg
    .execute("""-i $inputVideoPath -i $frameImage -filter_complex \"[0:v]scale=${imageHeight}:${imageWidth}[v];[1:v]scale=${imageHeight}:${imageWidth}[ov];[v][ov]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2\" $outputVideoPath""").then(
        (return_code) => print("0 Return code for success: $return_code"));

0

你只需要尝试不同的ffmpeg选项,找到适合你使用情况的那个。对我来说,以下选项是有效的。

final FlutterFFmpeg _flutterFFmpeg = FlutterFFmpeg();

_flutterFFmpeg.execute("-i video.mp4 -i audio.mp4 -c copy output.mp4")
              .then((return_code) => print("Return code $return_code"));

这保留了源质量。


这是在 https://pub.dev/packages/ffmpeg_kit_flutter 使用 ffmpeg_kit_flutter 包吗? import 'package:ffmpeg_kit_flutter/ffmpeg_kit_flutter.dart'; - MetaStack

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接