Ваші файли не приєднаються належним чином, оскільки щось не відповідає.
Як і у багатьох інших, у мене виникли проблеми із належним синхронізацією звуку в об’єднаних відео. і хоча MP4Box прекрасно працює, якщо кліпи мають однакові характеристики, в деяких випадках мене збиває "Не знайдено відповідного треку призначення - створення нового", і в цьому випадку Totem (він також Відео) не відтворюватиме цей сегмент у об'єднаному файлі Після декількох спроб та помилок та подальших досліджень я розробив наступний метод роботи з приєднанням до відео, який до цього часу щоразу працював із прийнятною (для мене) якістю.
Якщо розміри кадру не збігаються (приєднання до помилок, що стосуються відеодоріжок):
Нормалізуйте відео, не порушуючи звук (-c: копія), встановивши обмеження (ділиться на 8 для максимальної сумісності з кодеком) для невідповідних сегментів
Приклад команд
width=856
height=480
avconv -i input.mp4 -filter:v "scale=iw*min($width/iw\,$height/ih):ih*min($width/iw\,$height/ih), pad=$width:$height:($width-iw*min($width/iw\,$height/ih))/2:($height-ih*min($width/iw\,$height/ih))/2" -c:a copy output.mp4
Якщо аудіо не відповідає (приєднуються до помилок аудіозаписів):
Нормалізуйте звук
Обробляйте аудіо, не порушуючи відео (копія: v: копія), щоб усі кліпи відповідали бажаному кодеку, частоті та бітрейту c: кодек -ар частота, як -ar 48000, і бітрейт з b: 128k для стерео (64K за канал здається хорошою ціллю) або що б там не було.
Приклад: avconv -i input.mp4 -c:v copy -c:a libmp3lame -ar 48000 b:a 128k output.mp4
(зауважте, що libmp3lame є кодеком для аудіо mp3) Ви можете отримати список кодувальників, що підтримуються avconv, видавши команду avconv -codecs
або звузити речі до конкретного кодованого, avconv -codecs|grep *codecname*
наприкладavconv -codecs|grep mp3
Тепер, коли ми нормалізували файли, ми можемо приєднатися до них. У цьому прикладі я приєднаю файли до MP4Box. Якщо у вас його немає, ви можете отримати його, видавши командуsudo apt-get install gpac
Об'єднайте файли за допомогою команди MP4Box file1.mp4 -cat file2.mp4 -cat file3.mp4 -cat file4.mp4 -out joinedfile.mp4
(зауважте, що перед першим файлом немає кота, а кожному додатковому файлу передує -cat, а цільовому файлу передує -out)
Якщо ви використовуєте MP4Box (рекомендується для MP4) для приєднання, ви можете виявити, що вам доведеться обробити всі кліпи з avconv, чи не відповідають специфікації, щоб уникнути помилки "Не знайдено відповідного треку призначення - створення нового (введіть відео)"
Примітка. Я виявив, що Avidemux має проблеми з відео, закодованим за допомогою файлів H.264 / AVC (на тотем) через B-кадри в якості еталону. Це, мабуть, призводить до аудіосинхронізації аудіосигналу під час приєднання, навіть коли вибираєте копіювати аудіо та відео без ремуксації. Збої, коли не вибирається безпечний режим і не синхронізується при використанні безпечного режиму
Джерела:
/superuser/547296/resizing-videos-with-ffmpeg-avconv-to-fit-into-static-sized-player
/programming/20703160/problems-with-setting-constant-bitrate-by-using-avconv
https://trac.ffmpeg.org/wiki/Encode/AAC#fdk_cbr
Примітка. Наскільки я знаю, інші формати (контейнери) мають подібні обмеження щодо відповідності розміру кадру та швидкості звуку, тому це може спрацювати і для avi, якщо ви спробуєте з'єднатись через cat або mencoder після нормалізації відео та аудіо .
Необов’язково: Використовуйте Ручний гальмо, щоб перекодувати приєднаний файл для меншого розміру за бажанням із змінною частотою кадрів та постійною настройкою якості 25 (запропоновані налаштування - відрегулюйте, як це потрібно для ваших матеріалів та очікувань щодо якості)