LINUX.ORG.RU

_потоковая конверсия_ звука FLV в mp3/ogg/flac/acc+ или что-то еще


0

1

Есть FLV, видео из него не нужно, нужно достать звук, а затем сконвертить его во что-то удобочитаемое, желательно flac/mp3/ogg.

Важный момент - это файл во время работы rtmpdump, т.е. постоянно растет.

Если его скормить ffmpeg как -i file.flv, то на выходе будет ровно столько данных, сколько было на момент запуска, т.е. на рост файла оно внимания не обращает, если скармливать через пайп, то не будет ничего, пока буфер не перевалит за MAX_READ_SIZE, дальше оно или начинает конвертить с неизвестного места, или просто вылетает, т.е. править исходник и пересобирать не имеет смысла.

Запуск без rtmpdump вида ffmpeg -i rtmp://cast/movies/ приводит к аналогичному поведению.

VLC поток не сожрал вообще, мплеер долго буферизировал и вообще ничего не проиграл.

Чем бы еще попробовать?

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

С другой стороны, у меня несколько таких потоков и все их надо в итоге миксовать, таким образом идея мне нравится все больше.

eternalgeek
() автор топика
Ответ на: комментарий от eternalgeek

7-zip под оффтопом кое-как парсит, насчет потоковости не знаю.

froggy
()

Если его скормить ffmpeg как -i file.flv, то на выходе будет ровно столько данных, сколько было на момент запуска, т.е. на рост файла оно внимания не обращает, если скармливать через пайп, то не будет ничего, пока буфер не перевалит за MAX_READ_SIZE, дальше оно или начинает конвертить с неизвестного места, или просто вылетает, т.е. править исходник и пересобирать не имеет смысла.

А если попробовать tail -f?

Deleted
()
Ответ на: комментарий от Deleted

Как через пайп: я и через tail -f/F пробовал, и свою подавалку байтиков делал, и именованые пробовал - все едино

eternalgeek
() автор топика

Да, свежесобранный ffmpeg c rtmplib вообще не коннектится к серверу с HandShake: client signature does not match!

eternalgeek
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.