我正在尝试将音频文件写入现有视频。不幸的是,我得到了登录,我无法就位编辑现有文件。
我发现了一些关于视频和音频之间所谓的介绍的线程,但是它们都无法真正帮助我。也许你们中的一个人可以。此外,这也不是我。我只是需要使用它的人,所以我必须修复它。
感谢您的帮助
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
与您想要的相反,在这里不需要(