3

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

Не могу заставить моих детей использовать такие вещи, как ftp или даже электронную почту, для них "internetz" означает веб-браузер. Firefox обычно. Поэтому я использую apache2 для обслуживания cgi-страниц, сгенерированных из кода, скомпилированного мной, написанного на C. И все работает.

Поэтому я хочу иметь возможность транслировать музыку, фильмы, телевизионные записи и т.д. В веб-браузеры, и, несмотря на появление тега media в html5, flash по-прежнему остается единственным практическим решением, которое действительно работает.

Я смог получить программу cgi для конвертации mp3, avi и тому подобного в флеш-файлы с использованием ffmpeg по запросу пользователя, которые хранятся во временном файле в DOCUMENT_ROOT, и браузер будет их воспроизводить, и это работает. например:

ffmpeg -i "/home/media/Audio/Music Videos/Kylie Minogue - Come Into My World.mpg" -sameq -ab 32k -ar 22050 -ac 2 -s 320x240 -f flv -y ../tmp/file9ltYxj.flv

Хорошо, так что вкуса нет, послушай, я хэви-метал, но этот видео - гениальная работа! :-) Но это не идеально, во-первых, для создания всех этих файлов tmp требуется место, а для другого вызова ffmpeg для выполнения преобразования происходит зависание загрузки страницы во время выполнения задачи. Это нормально для пятиминутного музыкального видео, но я сомневаюсь, что Firefox будет ждать двухчасовой фильм, чтобы конвертировать с помощью этого метода.

Поэтому я хочу транслировать их, используя ffstream. Я выполняю эту строку (как root):

ffserver -d -f /etc/ffserver.conf &

и CGI выполняет это:

ffmpeg -i "/home/media/Audio/Music Videos/Kylie Minogue - Come Into My World.mpg" -sameq -ab 32k -ar 22050 -ac 2 -s 320x240 -f flv -y http://localhost:8090/feed1.flv

и вот тут у меня проблемы. Страница загружается, флеш вставляет, но ничего не показывает. ffserver сообщает:

Mon Apr 15 09:29:38 2013 New connection: GET /feed1.flv
Mon Apr 15 09:29:38 2013 192.168.0.33 - - [GET] "/feed1.flv HTTP/1.1" 404 149

Я получаю 404, но прежде чем я получил 200, прежде, я не уверен, почему это изменилось. Но будь то 404 или 200, страница одинакова; Загружен, но нет видеопотока.

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

Кто-нибудь может посоветовать, пожалуйста, где я могу пойти не так?

1 ответ1

2

В вашем случае FFmpeg должен предоставить выходной файл в виде потокового файла, так как в противном случае ваш файл еще не готов для потоковой передачи. Обычно это делается с использованием формата FFM:

ffmpeg -i "/home/media/Audio/Music Videos/Kylie Minogue - Come Into My World.mpg" -ab 32k -ar 22050 -ac 2 -s 320x240 -y http://localhost:8090/feed1.ffm

Затем в вашем файле server.conf вы можете передавать поток FFM на FLV:

<Feed feed1.ffm>
    File /feed1.ffm
</Feed>

<Stream feed1.flv>
    Feed feed1.ffm
    ...
</Stream>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .