Связано:
Как извлечь аудио из видеофайла с помощью Python?
Извлечь аудио из видео в формате wav
Как выдрать аудио из видео?
Мой вопрос: как извлечь аудио в формате wav? дорожка из видеофайла, скажем, video.avi?
Я читал много статей, и везде люди предлагают использовать (из Python) ffmpeg в качестве подпроцесса (потому что не существует надежных привязок Python к ffmpeg - единственной надеждой был PyFFmpeg, но я нашел его сейчас не поддерживается). Я не знаю, является ли это правильным решением, и я ищу хорошее.
Я посмотрел на gstreamer и нашел его хорошим, но неспособным удовлетворить мои потребности — единственный способ, который я нашел для достижения этой цели из командной строки выглядит так:
gst-launch-0.10 playbin2 uri=file://`pwd`/ex.mp4 audio-sink='identity single-segment=true ! audioconvert ! audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)16000, channels=(int)1 ! wavenc ! filesink location=foo.wav’
Но это неэффективно, потому что мне приходится ждать целую вечность при воспроизведении видео и одновременной записи в WAV-файл.
ffmpeg намного лучше:
avconv -i foo.mp4 -ab 160k -ac 1 -ar 16000 -vn ffaudio.wav
Но я не могу запустить его из Python (не как подпроцесс командной строки). Не могли бы вы указать мне на плюсы и минусы запуска ffmpeg из Python в качестве утилиты командной строки? (Я имею в виду использование модуля многопроцессорной обработки Python или чего-то подобного).
И второй вопрос.
Как просто разрезать длинный WAV-файл на части, чтобы не испортить слова? я имею в виду фрагменты длиной 10-20 секунд с началом и концом во время паузы в предложениях/словах?
я знаю, как разбить их на произвольные кусочки:
import wave
win= wave.open('ffaudio.wav', 'rb')
wout= wave.open('ffsegment.wav', 'wb')
t0, t1= 2418, 2421 # cut audio between 2413, 2422 seconds
s0, s1= int(t0*win.getframerate()), int(t1*win.getframerate())
win.readframes(s0) # discard
frames= win.readframes(s1-s0)
wout.setparams(win.getparams())
wout.writeframes(frames)
win.close()
wout.close()
Подробнее здесь: https://stackoverflow.com/questions/267 ... video-file
Python извлекает wav из видеофайла ⇐ Python
Программы на Python
1736502895
Anonymous
Связано:
Как извлечь аудио из видеофайла с помощью Python?
Извлечь аудио из видео в формате wav
Как выдрать аудио из видео?
Мой вопрос: как извлечь аудио в формате wav? дорожка из видеофайла, скажем, video.avi?
Я читал много статей, и везде люди предлагают использовать (из Python) ffmpeg в качестве подпроцесса (потому что не существует надежных привязок Python к ffmpeg - единственной надеждой был PyFFmpeg, но я нашел его сейчас не поддерживается). Я не знаю, является ли это правильным решением, и я ищу хорошее.
Я посмотрел на gstreamer и нашел его хорошим, но неспособным удовлетворить мои потребности — единственный способ, который я нашел для достижения этой цели из командной строки выглядит так:
gst-launch-0.10 playbin2 uri=file://`pwd`/ex.mp4 audio-sink='identity single-segment=true ! audioconvert ! audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)16000, channels=(int)1 ! wavenc ! filesink location=foo.wav’
Но это неэффективно, потому что мне приходится ждать целую вечность при воспроизведении видео и одновременной записи в WAV-файл.
ffmpeg намного лучше:
avconv -i foo.mp4 -ab 160k -ac 1 -ar 16000 -vn ffaudio.wav
Но я не могу запустить его из Python (не как подпроцесс командной строки). Не могли бы вы указать мне на плюсы и минусы запуска ffmpeg из Python в качестве утилиты командной строки? (Я имею в виду использование модуля многопроцессорной обработки Python или чего-то подобного).
[b]И второй вопрос.[/b]
Как просто разрезать длинный WAV-файл на части, чтобы не испортить слова? я имею в виду фрагменты длиной 10-20 секунд с началом и концом во время паузы в предложениях/словах?
я знаю, как разбить их на произвольные кусочки:
import wave
win= wave.open('ffaudio.wav', 'rb')
wout= wave.open('ffsegment.wav', 'wb')
t0, t1= 2418, 2421 # cut audio between 2413, 2422 seconds
s0, s1= int(t0*win.getframerate()), int(t1*win.getframerate())
win.readframes(s0) # discard
frames= win.readframes(s1-s0)
wout.setparams(win.getparams())
wout.writeframes(frames)
win.close()
wout.close()
Подробнее здесь: [url]https://stackoverflow.com/questions/26741116/python-extract-wav-from-video-file[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия