Аудио Видео слияние с использованием ffmpeg-moov atom не найдена - PullRequest
0 голосов
/ 05 февраля 2019

Я использую приведенную ниже команду для объединения аудио и видео-

"-i", videoFileAbsolutePath, "-i", audioFileAbsolutePath, "-c:v", "copy", "-c:a", "aac", "-map", "0:v:0", "-map", "1:a:0", "-shortest", destinationFileAbsolutePath

Для нескольких видео я получаю ошибку ниже -

ffmpeg версия n3.0.1 Copyright (c)2000-2016 разработчики FFmpeg \ n, созданные с конфигурацией gcc 4.8 (GCC) \ n: --target-os = linux --cross-prefix = / home / vagrant / SourceCode / ffmpeg-android / toolchain-android / bin / arm-linux-androideabi- --arch = arm --cpu = cortex-a8 --enable-runtime-cpudetect --sysroot = / home / vagrant / SourceCode / ffmpeg-android / toolchain-android / sysroot --enable-pic --enable-libx264 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-fontconfig --enable-pthreads --disable-debug --disable-ffserver --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-ffprobe --enable-gpl --enable-yasm --disable-doc --disable-shared --enable-static --pkg-config = / home /vagrant / SourceCode / ffmpeg-android / ffmpeg-pkg-config --prefix = / home / vagrant / SourceCode / ffmpeg-android / build / armeabi-v7a --extra-cflags = '- I / home / vagrant / SourceCode / ffmpeg-android / toolchain-android / include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE = 2 -fno-strict-overflow -fstack-protector-all '--extra-ldflags =' - L / home / vagrant / SourceCode / ffmpeg-android / toolchain-android / lib -Wl, -z, relro -Wl, -z, теперь -pie '--extra-libs =' - lpng -lexpat -lm '--extra-cxxflags = \ n libavutil 55. 17.103/ 55. 17.103 \ n libavcodec 57. 24.102 / 57. 24.102 \ n libavformat 57. 25.100 / 57. 25.100 \ n libavdevice 57. 0.101 / 57. 0.101 \ n libavfilter 6. 31.100 / 6. 31.100 \ n libswscale 4. 0.100/ 4. 0.100 \ n libswresample 2. 0.101 / 2. 0.101 \ n libpostproc 54. 0.100 / 54. 0.100 \ nВход # 0, mov, mp4, m4a, 3gp, 3g2, mj2, из '/ storage / emulated / 0 /keepvid / Amar_Akbar_Anthony_ (HD) _-_ Hindi_Full_Movie _-_ Amitabh_Bachchan, _Vinod_Khanna, _Rishi_Kapoor, _1080P.mp4 ': \ n метаданные: \ n major_brand: dash \ n minor_version: 0: 100 *: n_1: 0: 0: 0: 7: 7: 7: 10: 7: 7: 7: 10: n: 7: n: 0: 7: 0: *: *: *: n_1: 201: n = 0: *: * n: 0: *: *: n_: __10_: \ n *: * * * * * * * * * * * *.-23 19: 02: 47 \ n Продолжительность: 02: 46: 52.04, начало: 0.000000, битрейт: 1528 кбит / с \ n Поток № 0: 0 (отменить): Видео: h264 (высокий) (avc1 / 0x)31637661), yuv420p (tv, bt709), 1920x1080 [SAR 1: 1 DAR 16: 9], 0 кбит / с, 25 к / с, 25 тбр, 90 тыс. Тбн, 50 тбк (по умолчанию) \ n Метаданные: \ n время создания: 2018-10-23 19: 02: 47 \ n имя-обработчика: VideoHandler \ n [mov, mp4, m4a, 3gp, 3g2, mj2 @ 0xeb62d600] Формат mov, mp4, m4a, 3gp, 3g2, mj2 обнаруживается только при низком уровнеоценка 1, возможно неправильное определение ! \ n [mov, mp4, m4a, 3gp, 3g2, mj2 @ 0xeb62d600] атом moov не найден \ n / storage / emulated / 0 / keepvid / Amar_Akbar_Anthony_ (HD) _-_Hindi_Full_Movie _-_ Amitabh_Bachchan, _Vinod_Khanna, _Rishi_Kapoor, _1080P.m4a : Обнаружены неверные данные при обработке входных данных

Я получил аналогичную ошибку также при создании водяного знака-

"-i", videoFileAbsolutePath, "-i", imageFileAbsolutePath, "-filter_complex", "overlay=" + position, dest.getAbsolutePath()

ffmpeg версия n3.0.1 Copyright (c) 2000-2016 разработчики FFmpeg \ n, созданные с конфигурацией gcc 4.8 (GCC) \ n: --target-os = linux --cross-prefix = / home / vagrant / SourceCode/ ffmpeg-android / toolchain-android / bin / arm-linux-androideabi- --arch = arm --cpu = cortex-a8 --enable-runtime-cpudetect --sysroot = / home / vagrant / SourceCode / ffmpeg-android/ toolchain-android / sysroot --enable-pic --enable-libx264 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-fontconfig --enable-pthreads --disable-debug --disable-ffserver --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-ffprobe --enable-gpl --enable-yasm --disable-doc --disable-shared -enable-static --pkg-config = / home / vagrant / SourceCode / ffmpeg-android / ffmpeg-pkg-config --prefix = / home / vagrant / SourceCode / ffmpeg-android / build / armeabi-v7a --extra-cflags= '- I / home / vagrant / SourceCode / ffmpeg-android / toolchain-android / include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE = 2 -fno-strict-overflow -fstack-protector-all '--extra-ldflags =' - L / home / vagrant / SourceCode / ffmpeg-android / toolchain-android / lib -Wl, -z, relro -Wl, -z, теперь -pie '--extra-libs ='-lpng -lexpat -lm' --extra-cxxflags = \ n libavutil 55. 17.103 / 55. 17.103 \ n libavcodec 57. 24.102 / 57. 24.102 \ n libavformat 57. 25.100 / 57. 25.100 \ n libavdevice 57. 0.101/ 57. 0.101 \ n libavfilter 6. 31.100 / 6. 31.100 \ n libswscale 4. 0.100 / 4. 0.100 \ n libswresample 2. 0.101 / 2. 0.101 \ n libpostproc 54. 0.100 / 54. 0.100 \ nВход # 0, mov, mp4, m4a, 3gp, 3g2, mj2, из '/ storage / emulated / 0 / WhatsApp Business / Media / WhatsApp Business Video / VID-20190215-WA0016.mp4': \ n Метаданные: \ n major_brand: mp42 \ n minor_version: 1 \ n compatibility_brands: mp41mp42isom \ n creation_time: 2019-02-14 11: 53: 37 \ n Продолжительность: 00: 00: 45,56, начало: 0,000000, битрейт: 1444 кбит / с \ n Поток № 0: 0 (отменить): Видео: h264 (базовый уровень) (avc1 / 0x31637661), yuv420p (телевизор, bt709), 848x480, 1382 кбит / с, 29,98 кадров в секунду, 29,97 тб, 600 тбит, 1200 тбк (по умолчанию)2019-02-14 11: 53: 37 \ n имя обработчика: CoreМультимедийное видео \ n Поток № 0: 1 (und): Аудио: aac (LC) (mp4a / 0x6134706D), 44100 Гц, стерео, fltp, 59 Кбит / с (по умолчанию) \ n Метаданные: \ n Время_ создания: 2019-02-14 11: 53: 37 \ n имя-обработчика: Core Media Audio \ n [mov, mp4, m4a, 3gp, 3g2, mj2 @ 0xf0e30600] Формат mov, mp4, m4a, 3gp, 3g2, mj2 обнаружен только при низком значении 1возможно неправильное обнаружение! \ n [mov, mp4, m4a, 3gp, 3g2, mj2 @ 0xf0e30600] атом moov не найден \ n / storage / emulated / 0 / Movies / IMG-20190225-WA0030.jpg.mp4: При обработке ввода обнаружены неверные данные \ n

Как я могу устранить эту ошибку?

1 Ответ

0 голосов
/ 07 марта 2019

Если вы хотите иметь тот же формат вывода, что и формат ввода, и мы предполагаем, что видеофайл не содержит аудиопотока, вы можете адаптировать следующую команду FFmpeg для android:

ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental output_merged.mp4

И если ваш один поток длиннее другого, вы можете добавить опцию -shortest, чтобы FFmpeg прекратил кодирование после окончания одного файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...