2012-04-14 6 views
0

Я хочу использовать ffmpeg для кодирования и публикации прямого потока на Flash Media Server. Чтобы поддерживать устройства iOS, мне нужно также реализовать потоковое HTTP-потоковое вещание. Видео должно быть в формате H.264, а аудио должно быть AAC. У меня нет большого опыта работы с ffmpeg, и мне нелегко заставить это работать. Это команда, которую я попробовал (и некоторые вариации, а):Использование ffmpeg с Flash Media Server и HDS

ffmpeg.exe -threads 15 -f dshow -i video="USB2.0 UVC WebCam":audio="Microphone (Realtek High Defini" \ 
     -map_channel 0.1.1 -r 24 -acodec libvo_aacenc -ar 22050 -ab 128k -vcodec libx264 \ 
     -s vga -vb 100k -f flv "rtmp://<public-dns>/livepkgr/livestream1?adbe-live-event=liveevent" \ 
     -r 24 -acodec libvo_aacenc -ar 22050 -ab 128k -vcodec libx264 -s qvga -vb 200k \ 
     -f flv "rtmp://<public-dns>/livepkgr/livestream2?adbe-live-event=liveevent" \ 
     -r 24 -acodec libvo_aacenc -ar 22050 -ab 128k -vcodec libx264 -s vga -vb 350k 
     -f flv "rtmp://<public-dns>/livepkgr/livestream3?adbe-live-event=liveevent" 

Когда я запускаю это, по-видимому для подключения к FMS, но затем я получаю много сообщений об ошибках о пропущенных кадрах - I Не уверен, что ЛЮБЫЕ кадры будут успешно закодированы. Использование моего процессора также очень велико. Я получаю ошибку 404 от FMS, когда я ввожу URL-адрес файла * .m3u8 для одного из отдельных потоков (хотя доступен основной файл livestream.m3u8). Я также попробовал вывод в файл вместо FMS, без успеха. Все, что я получаю, это очень искаженный звук и видео.

Любые предложения по каким параметрам/командам я должен использовать, чтобы это работало? Кто-нибудь использует ffmpeg с FMS для работы с HTTP Dynamic Streaming/HLS с видео MP4? Я изо всех сил пытался получить HDS/HLS в течение некоторого времени, и любая помощь была бы высоко оценена! Это не должно меняться, но я использую FMS на Amazon EC2 с их изображением AMI.

Спасибо!

+0

http://blog.denivip.ru/index.php/2011/07/1893/?lang=en и http://betterlogic.com/roger/2012/08/ffmpeg-receiving-rtmp-stream- from-flash-media-server/может помочь – rogerdpack

ответ

2
-threads 15 

Я глубоко подозрительно отношусь к этой ценности. Мои собственные исследования и эксперименты с коммутатором threads говорят о том, что любое значение выше 4 является ошибкой. Попробуйте удалить его, используя меньшее значение, и/или значение делится на 2.

-f flv 

Я также глубоко подозрительным это значение. FLV и h.264 плохо взаимодействуют. Вместо этого используйте MP4.

Вы упомянули CPU «высокий», но вы не указали процент. Также обратите внимание, что вы кодируете три разных битовых скорости - эффективно три одновременных задания кодирования. И вы не упоминаете процессор, на котором вы работаете. Pentium 4 или Core 2? Я не удивлюсь. Современный Core i7, хорошо.

Почему вы используете FFmpeg? Очень хорошо может быть проще использовать Adobe Flash Media Live Encoder.