FFMPEG извлекает аудио из видео с раздражающим звуком в конце

0

Я использую FFMPEG для извлечения аудио из видеофайла * .avi
Это формат файла avi, напечатанный с помощью ffprobe

ffprobe 0.avi
ffprobe версия 2.8.4 Copyright (c) 2007-2015 разработчики FFmpeg, созданные с
конфигурацией gcc 4.8 (Ubuntu 4.8.4-2ubuntu1 ~ 14.04) : --disable-yasm
libavutil 54. 31.100 / 54. 31.100
libavcodec 56 60.100 / 56. 60.100
libavformat 56. 40.101 / 56. 40.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 40.101 / 5. 40.101
libswscale 3. 1.101 / 3.
1.101 libswresample 1. 2.101 / 1. 2.101
Недопустимый код голомов UE <- Эта строка красного цвета в консоли, это может быть ошибка, но видео воспроизводится хорошо.
Последнее сообщение повторено 2 раза.
Введите # 0, avi, из '0.avi':
Продолжительность: 00: 02: 54,33, начало: 0,000000, битрейт: 1880 кбит / с
Поток # 0: 0: видео: h264 (высокое) (H264 / 0x34363248), yuv420p, 1280x720, 1740 кбит / с, 15 кадров в секунду, 15 тбр , 15 tbn, 30 tbc
Поток # 0: 1: Аудио: pcm_s16le ([1] [0] [0] [0] / 0x0001), 8000 Гц, 1 канал, s16, 128 кбит / с

Я использовал команду ffmpeg:

ffmpeg -i 0.avi -vn -c:a copy sound0.wav

Конвертировать прогресс выглядит нормально

Вывод # 0, wav, в 'sound0.wav':
Метаданные:
ISFT: Lavf56.40.101
Поток # 0: 0: Аудио: pcm_s16le ([1] [0] [0] [0] / 0x0001), 8000 Гц, моно , 128 кбит / с
Отображение потока:
поток # 0: 1 -> # 0: 0 (копия)
Нажмите [q], чтобы остановить, [?] Для
размера справки = 2726 кБ время = 00: 02: 54,49 битрейт = 128,0 кбит / с
видео: 0 КБ, аудио: 2726 КБ, субтитры: 0 КБ, другие потоки: 0 КБ, глобальные заголовки: 0 КБ, издержки
мультиплексирования: 0,002794%

Вывод звуковой информации:

Вход # 0, wav, из 'sound0.wav':
Метаданные:
кодировщик: Lavf56.40.101
Продолжительность: 00: 02: 54.49, битрейт: 128 кбит / с
Поток # 0: 0: Аудио: pcm_s16le ([1] [0] [0] [0] / 0x0001), 8000 Гц, 1
канал, s16, 128 кбит / с

Все выглядит хорошо, но раздражающие звуки (просто звуковой сигнал или что-то в этом роде) заканчиваются в файле аудиовыхода, в то время как входное видео в порядке.

http://vocaroo.com/i/s00Ia5bO0JID

У меня нет базовых знаний по работе с мультимедиа или ffmpeg, поэтому я понятия не имею, что произошло.

Любая помощь будет оценена.

Лой Данг
источник

Ответы:

0

Кажется, что копия потока копирует весь поток, включая часть, которая продолжается после продолжительности видео.

Пытаться

ffmpeg -i 0.avi -vn -c:a copy -t 02:54.33 sound0.wav
Gyan
источник
Благодаря Mulvya, аргумент -t временно работает для меня, но, похоже, мне нужно сначала определить продолжительность видео (из сценария bash). Есть ли другой способ?
Лой Данг
0

Может быть, это происходит из-за проблем с кодеками. Опция -c:a copyкопирует аудио кодек.

используйте ffmpeg -i 0.avi -c:a libmp3lame sound0.mp3для кодирования вашего аудио в формате mp3.

Behroozfar
источник