Я пытаюсь использовать ffmpeg для добавления тихой звуковой дорожки в видеофайл (Instagram требует, чтобы у видеофайлов была звуковая дорожка, чтобы по какой-либо причине их можно было загружать), и я использую следующую команду:
ffmpeg -f lavfi -i aevalsrc=0 -i input.mkv -shortest -c:v copy -c:a libvo_aacenc output.mp4
Входной файл "input.mkv" - 00:00:06 (т.е. 6 секунд). Тем не менее, результирующий «output.mp4» выходит в 00:02:31 (т.е. 2 минуты 31 секунда), очевидно, гораздо дольше. Через 6 секунд видео, кажется, останавливается на последнем кадре для оставшейся части. Естественно, это не тот результат, которого я ожидал или хотел.
Кто-нибудь может подсказать, какую ошибку я допустил в этой команде и как правильно добиться того, чего я хочу? Я хотел бы иметь возможность написать небольшой пакетный скрипт или что-то для автоматического преобразования видео в правильный формат, необходимый для Instagram для будущего использования.
РЕДАКТИРОВАТЬ: Как и требовалось, вот вывод ffmpeg:
ffmpeg version N-50911-g9efcfbe Copyright (c) 2000-2013 the FFmpeg developers
built on Mar 13 2013 21:26:48 with gcc 4.7.2 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libg
sm --enable-libilbc --enable-libmp3lame --enable-libopencore-amrnb --enable-libo
pencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-li
bschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-lib
twolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enabl
e-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
libavutil 52. 19.100 / 52. 19.100
libavcodec 55. 0.100 / 55. 0.100
libavformat 55. 0.100 / 55. 0.100
libavdevice 54. 4.100 / 54. 4.100
libavfilter 3. 45.103 / 3. 45.103
libswscale 2. 2.100 / 2. 2.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
[lavfi @ 02259b00] Estimating duration from bitrate, this may be inaccurate
Input #0, lavfi, from 'aevalsrc=0':
Duration: N/A, start: 0.000000, bitrate: 2822 kb/s
Stream #0:0: Audio: pcm_f64le, 44100 Hz, mono, dbl, 2822 kb/s
Input #1, matroska,webm, from 'input.mkv':
Metadata:
ENCODER : Lavf55.0.100
Duration: 00:00:06.10, start: 0.000000, bitrate: 5123 kb/s
Stream #1:0: Video: h264 (High), yuv420p, 1620x1080 [SAR 1:1 DAR 3:2], 10 fp
s, 10 tbr, 1k tbn, 20 tbc (default)
File 'output.mp4' already exists. Overwrite ? [y/N] y
Output #0, mp4, to 'output.mp4':
Metadata:
encoder : Lavf55.0.100
Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 1620x1080 [SAR 1
:1 DAR 3:2], q=2-31, 10 fps, 16k tbn, 1k tbc (default)
Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 44100 Hz, mono, s16, 128 k
b/s
Stream mapping:
Stream #1:0 -> #0:0 (copy)
Stream #0:0 -> #0:1 (pcm_f64le -> libvo_aacenc)
Press [q] to stop, [?] for help
frame= 59 fps=0.0 q=-1.0 Lsize= 4961kB time=00:01:12.38 bitrate= 561.4kbits
/s
video:3814kB audio:1132kB subtitle:0 global headers:0kB muxing overhead 0.304997
%
Я также должен отметить, что на этот раз результирующий «output.mp4» был 00:01:12 - эта длина кажется несколько "случайной", поскольку, конечно, была использована та же самая команда, что и раньше, когда я это делал.