使用 ffmpeg_kit_flutter 包将音频应用到视频背景在 flutter 中不起作用

问题描述 投票:0回答:1

我正在尝试合并视频和音频,并使用 ffmpeg_kit_flutter 包在 flutter 应用程序中下载视频,它可以很好地处理由屏幕录像机应用程序录制的视频,该应用程序记录了我的手机屏幕,但它不适用于以下视频:我的手机摄像头或任何其他视频录制的,我不知道问题出在哪里。 这是我的代码:

Future<void> mergeRecordWithIntro({required String videoPath, required String audiPath, }) 
async 
  {
 final random = Random();
 final directory = await getTemporaryDirectory();

 String outputVideoPath = '${directory.path}/${random.nextInt(10000)}_merged_video.mp4';
 String ffmpegCommand = '-i $videoPath -i $audiPath -c:v copy -c:a aac $outputVideoPath';

 await FFmpegKit.execute(ffmpegCommand)
    .then((value) async {
  await Gal.putVideo(outputVideoPath);
  emit(MergeVideoAudioSuccessState());
  }).catchError((error){
  emit(MergeVideoAudioFailureState());
  });
}
flutter android-studio ffmpeg android-ffmpeg flutter-ffmpeg
1个回答
0
投票

保存音频,但确保在保存之前删除特殊字符,使用此正则表达式 String sanitizeFileName(String fileName) { // 删除特殊字符并用下划线替换空格 返回文件名 .replaceAll(RegExp(r'[^\w\s.]'), '') // 删除特殊字符 .replaceAll(RegExp(r'\s+'), '_') // 用下划线替换空格 .replaceAll(RegExp(r'.+'), '.') // 确保只有单个点 .toLowerCase(); // 转换为小写 }

使用这样的命令 '-i "$outputPath" -i "$audioPath" -map 0:v -map 1:a -c:v copy -c:a aac "$finalOutputPath"';

© www.soinside.com 2019 - 2024. All rights reserved.