如何修复 "FFmpeg cannot edit existing files in-place." - Java 中的问题



我正在尝试将音频文件写入现有视频。不幸的是,我得到了登录,我无法就位编辑现有文件。

我发现了一些关于视频和音频之间所谓的介绍的线程,但是它们都无法真正帮助我。也许你们中的一个人可以。此外,这也不是我。我只是需要使用它的人,所以我必须修复它。

感谢您的帮助

String[] args = { FFMPEG_FILE.getAbsolutePath(), "-y", "-i", videoPath, "-ss", String.valueOf(-offset.toFrames() / 50.0f), "-i", audioPath, "-c", "copy", "-map", "0:v", "-map","1:a", "-bsf:v", "h264_mp4toannexb","-r", String.valueOf(project.getFramerate()), "-shortest",outputPath };
ProcessBuilder pb = new ProcessBuilder(args).inheritIO();
Process p = pb.start();
int exit = p.waitFor();
if (exit != 0) {
     throw new IOException("ffmpeg terminated with a failure");
}

编辑:正如某人评论的输出路径与视频变态相同。因此将其切换到另一个,因此此问题不会再次出现。但是我的outputvideos仍然没有声音。我给您登录信息,所以也许您可以从中读取一些内容。

INFO: start ffmpeg: [C:Program Filesffmpegbinffmpeg.exe, -y, -i, C:UsersUSERNAMEDesktopTest_Workflow1.mkv, -ss, 0.0, -i, C:UsersUSERNAMEDesktopTestresources/videos/P1000501.MP4audio.ogg, -c, copy, -map, 0:v, -map, 1:a, -bsf:v, h264_mp4toannexb, -r, 25, -shortest, C:UsersUSERNAMEDesktopTesttestoutput.mp4]
ffmpeg version N-92087-gdcbd89e000 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 8.2.1 (GCC) 20180813
  configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth
  libavutil      56. 19.101 / 56. 19.101
  libavcodec     58. 31.102 / 58. 31.102
  libavformat    58. 18.104 / 58. 18.104
  libavdevice    58.  4.105 / 58.  4.105
  libavfilter     7. 33.100 /  7. 33.100
  libswscale      5.  2.100 /  5.  2.100
  libswresample   3.  2.100 /  3.  2.100
  libpostproc    55.  2.100 / 55.  2.100
Input #0, matroska,webm, from 'C:UsersUSERNAMEDesktopTest_Workflow1.mkv':
  Metadata:
    ENCODER         : Lavf56.4.101
  Duration: 00:00:04.60, start: 0.080000, bitrate: 1377 kb/s
    Stream #0:0: Video: h264 (High), yuv420p(progressive), 1920x1080, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
Input #1, ogg, from 'C:UsersUSERNAMEDesktopTestresources/videos/P1000501.MP4audio.ogg':
  Duration: 00:04:20.65, start: 0.000000, bitrate: 86 kb/s
    Stream #1:0(und): Audio: vorbis, 48000 Hz, stereo, fltp, 112 kb/s
    Metadata:
      CREATION_TIME   : 2018-11-09T13:20:07.000000Z
      LANGUAGE        : und
      ENCODER         : Lavc58.31.102 libvorbis
      MAJOR_BRAND     : mp42
      MINOR_VERSION   : 1
      COMPATIBLE_BRANDS: mp42avc1
[mp4 @ 000001e67c0a00c0] track 1: codec frame size is not set
Output #0, mp4, to 'C:UsersUSERNAMEDesktopTesttestoutput.mp4':
  Metadata:
    encoder         : Lavf58.18.104
    Stream #0:0: Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 25 fps, 25 tbr, 12800 tbn, 25 tbc (default)
    Stream #0:1(und): Audio: vorbis (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 112 kb/s
    Metadata:
      CREATION_TIME   : 2018-11-09T13:20:07.000000Z
      LANGUAGE        : und
      ENCODER         : Lavc58.31.102 libvorbis
      MAJOR_BRAND     : mp42
      MINOR_VERSION   : 1
      COMPATIBLE_BRANDS: mp42avc1
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #1:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=  113 fps=0.0 q=-1.0 Lsize=     824kB time=00:00:04.41 bitrate=1530.8kbits/s speed= 634x    
video:772kB audio:43kB subtitle:0kB other streams:0kB global headers:4kB muxing overhead: 1.092082%

对于原始问题," ffmpeg不能在就位编辑现有文件。同时。

对于本期,Vorbis不是MP4的标准音频编解码器,因此重新编码音频。

C:Program Filesffmpegbinffmpeg.exe, -y, -i, C:UsersUSERNAMEDesktopTest_Workflow1.mkv, -ss, 0.0, -i, C:UsersUSERNAMEDesktopTestresources/videos/P1000501.MP4audio.ogg, -c:v, copy, -map, 0:v, -map, 1:a, -r, 25, -shortest, C:UsersUSERNAMEDesktopTesttestoutput.mp4

(由于您正在写信给MP4,因此-bsf:v, h264_mp4toannexb与您想要的相反,在这里不需要(

最新更新