
У меня есть видеофайл, video.mp4
. Его продолжительность 18 минут 23 секунды. Я хочу извлечьтолько аудиоиз этого видео и создайте MP3 максимально возможного качества из звука в видео.
Googlefu привел меня к этой команде:ffmpeg -i video.mp4 audio.mp3
Проблема в том, что эта командаудваиваетдлина выводимого аудио (продолжительность 36 минут 46 секунд). Он зацикливает звуковую дорожку один раз, поэтому вывод содержит все 18 минут 23 секунды аудио, а затем немедленно запускает 18 минут 23 секунды аудио снова.
Еще немного гуглфу привели меня к этому флагу: -write_xing 0
fromэтот ТАК вопрос, но даже с этим флагом звук все равно зацикливается.
РЕДАКТИРОВАТЬ: Дополнительный googlefu и я, похоже, думаем, что это как-то связано с 2 аудиоканалами (и, возможно, зацикливанием канала 2 сразу после канала 1, а не слиянием двух) привели меня к этому флагу: -ac 1
заставить его объединить стерео -> моно. Это тоже не сработало, и он по-прежнему выводит файл MP3 длительностью 38 минут 46 секунд.
Как извлечь (в MP3) звук из видеофайла, не увеличивая его длительность вдвое?
решение1
Попробуй это:
ffmpeg -i video.mp4 -vn -sn -c:a mp3 -ab 192k audio.mp3
Я использовал это для той же цели, и это не изменило длительность аудио. Кроме того, (IMHO) попытка повысить качество просто излишня, но вы можете попробовать с 320k.
решение2
Google обнаружил несколько отчетов об ошибках в ffmpeg Trac, которые показывают, что -write_xing 0 в вашей командной строке ffmpeg может исправить это. Похоже, что расхождение в длине происходит из-за неверных значений в данных Xing, которые записываются по умолчанию.