2015-03-11 2 views
2

Я использовал командную строку ffmpeg, показанную в this question, чтобы разделить файлы MKV в течение длительного времени. Теперь у меня есть некоторые файлы MP4, которые я хотел бы разбить, и сначала они, казалось, работали, но каждый последующий сегмент после первого звука не синхронизировался! И на несколько секунд.ffmpeg, чтобы разделить файл mp4 на сегменты ... после первого сегмента, без звука

Я пробовал форсировать ключевые кадры (советы, которые я нашел на некоторых других сайтах), и это не помогло.

Я пробовал другую программу целиком (Avidemux), и он смог разделить файл с правильным выходом, но он был медленнее, занимая 3 минуты против менее 2 секунд с помощью ffmpeg. С Avidemux я смог определить точную позицию i-фрейма, где я хотел разделить, так что, возможно, это была проблема синхронизации, которую я пробовал эту точную позицию (то есть 00: 12: 17.111 вместо 00:12:16 или что угодно), но это тоже не помогло.

Есть ли опция, с которой мне не хватает ffmpeg, чтобы правильно ее синхронизировать с видео при расщеплении?

+0

Попробуйте ввести другую версию FFmpeg. И не отправляйте вопросы FFmpeg CLI о переполнении стека. Они здесь не по теме. Используйте SuperUser.com, и вы, скорее всего, получите лучший ответ. – Brad

+0

Я ссылался на вопрос CLI переполнения стека FFMpeg, поэтому я просто предположил, что это Q в порядке ... так было и так. Просто нашел его через Google ... на самом деле не дал ему 2-ей мысли, извините. – bcsteeve

+0

FYI - обновление FFmpeg вообще не помогло. Точная же проблема. – bcsteeve

ответ

5

Я не уверен, что понимаю ПОЧЕМУ, но проблема была в порядке параметров.

В связанном примере команда выглядит следующим образом:

ffmpeg -i input.avi -vcodec copy -acodec copy -ss 00:30:00 -t 00:30:00 output2.avi 

Конечно, я использую mp4 вместо AVI, но в противном случае я вступал в команду точно, как описано выше, и (с mp4) I получал аудио-результат вне синхронизации. Я случайно stumpled на это «исправить» ... если я вместо того, чтобы войти в команду таким образом:

ffmpeg -ss 00:30:00 -i input.mp4 -vcodec copy -acodec copy -t 00:30:00 output2.mp4 

Я не получаю проблемы синхронизации. Зачем? Без понятия. Но это работает. Я несколько раз пробовал это, чтобы подтвердить ... только изменение порядка изменения параметров исправляет проблему.

+0

Использование версии ffmpeg N-72460-g11aa050 для копирования AAC из MP4 с позицией -ss и -t. Первый/нормальный порядок параметров дал хорошие результаты. Второй/измененный порядок параметров привел к плохим результатам. Начало всех треков после первого включало конец предыдущего трека. Это будет ошибкой. – Bilbo

+0

Я думаю, что когда вы видите начало треков, включая конец предыдущего трека, это на самом деле не «ошибка», но это связано с позицией ключевых кадров. – bcsteeve

+0

. Хорошо, что @bcsteeve, но независимо от того, к чему это имеет отношение, если нет веской причины для изменения порядка параметров, чтобы изменить ситуацию, и/или если разница и причина этого не задокументированы, то это проблема что приводит к ошибке/ошибке. Предложение по оптимизации: когда выход является только аудио, игнорируйте что-либо, например ключевые кадры, которые затрагивают только видео, насколько это возможно. – Bilbo