Потоковое MP4 видео через ffmpeg и RTMP, используя Red5

10450
Kevin - Dhinesh babu

Мне нужно для потоковой передачи видео файла mp4 через FFMPEG и потокового вывода на RED5 с использованием протокола RTMP. Я использую следующую команду, чтобы сделать это. Он прекрасно кодирует, но не воспроизводится, когда я встраиваю jwplayer.

ffmpeg -i http://xxxxxx.com/adv.mp4 -acodec copy -vcodec copy -f flv rtmp://xxxxxxx/live/stream1 

это дает следующий результат:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'http://xxxxxxxxxxxx.com/adv.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp42isomavc1 creation_time : 2013-10-14 11:57:33 encoder : HandBrake 0.9.9 2013052900 Duration: 00:04:50.99, start: 0.000000, bitrate: 912 kb/s Stream #0.0(und): Video: h264 (Constrained Baseline), yuv420p, 1920x360 [PAR 847:1920 DAR 847:360], 795 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc Metadata: creation_time : 2013-10-14 11:57:33 Stream #0.1(und): Audio: aac, 11025 Hz, stereo, s16, 116 kb/s Metadata: creation_time : 2013-10-14 11:57:33 Output #0, flv, to 'rtmp://xxxxxxxxx/live/stream1': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp42isomavc1 creation_time : 2013-10-14 11:57:33 encoder : Lavf53.21.1 Stream #0.0(und): Video: libx264, yuv420p, 1920x360 [PAR 847:1920 DAR 847:360], q=2-31, 795 kb/s, 1k tbn, 25 tbc Metadata: creation_time : 2013-10-14 11:57:33 Stream #0.1(und): Audio: libvo_aacenc, 11025 Hz, stereo, 116 kb/s Metadata: creation_time : 2013-10-14 11:57:33 Stream mapping: Stream #0.0 -> #0.0 Stream #0.1 -> #0.1 Press ctrl-c to stop encoding frame= 7266 fps=563 q=-1.0 Lsize= 32544kB time=290.64 bitrate= 917.3kbits/s  video:28220kB audio:4130kB global headers:0kB muxing overhead 0.601155% 

После этого я вставляю URL RTMP в мой jwplayer

<script type='text/javascript'> jwplayer('mediaspace').setup({ 'flashplayer': 'http://xxxxxxxxxx/tools/js/jwplayer.flash.swf', 'stretching': 'exactfit', 'type': 'rtmp',  'file':'stream1', 'autostart': 'true',  'controlbar': 'bottom', 'streamer':'rtmp://xxxxxxxx/live/',   'width': '889', 'height': '410',  }); </script> 

После этого мой игрок показывает следующую ошибку

Error loading stream Could not connect to the server 

Как я могу решить это и поток, как живой эфир .... ???

1

1 ответ на вопрос

3
Unnikrishnan

Попробуйте эту команду. Эту команду я обычно использую для потоковой передачи видеофайла в прямом эфире.

ffmpeg -re -i localFile.mp4 -c copy -f flv rtmp: // сервер / live / streamName

Опция -re указывает FFmpeg читать входной файл в режиме реального времени, а не стандартным способом как можно быстрее. С помощью -c copy (псевдоним -acodec copy -vcodec copy) я говорю FFmpeg скопировать сущности входного файла без транскодирования, затем упаковать их в контейнер FLV (-f flv) и отправить последний поток битов в rtmp назначение (rtmp: // сервер / live / streamName).

Исходный код JWplayer выглядит следующим образом

<html> <head><title>TEST PLAYER</title> </head> <body> <script type="text/javascript" src="jwplayer.js"></script> <div id="myElement">Loading the player...</div> <script type="text/javascript"> jwplayer("myElement").setup({ file: "rtmp://[ip-address]/live/streamname", }); </script> </body> </html> 

Убедитесь, что jwplayer.js и player.swf находятся в правильных местах.

Как я могу вставлять с JWPlayer ??? Kevin - Dhinesh babu 10 лет назад 0
какую версию jwplayer вы используете? Unnikrishnan 10 лет назад 0
jwplayer 6.0 выше Kevin - Dhinesh babu 10 лет назад 0
приведенный выше код ffmpeg возвращает эту ошибку «Нераспознанная опция» c »Не удалось установить значение« copy »для опции« c » Kevin - Dhinesh babu 10 лет назад 0
Здесь нет ошибок. Проверьте команду еще раз. Попробуйте изменить порядок опций Unnikrishnan 10 лет назад 0
как я могу добавить мульти входной файл Kevin - Dhinesh babu 10 лет назад 0
Это команда, которую я использовал ffmpeg -re -i /usr/local/content/sample.mp4 -c copy -f flv rtmp: //192.168.1.34: 1935 / live / test Unnikrishnan 10 лет назад 0
мой друг, я сказал, что ввод мультилитов выглядит следующим образом: ffmpeg -re i- inputfile1.mp4, inputfile2.mp4, inputfile3.mp4 -c copy -f flv rtmp: // xxxxx / live / test` Kevin - Dhinesh babu 10 лет назад 0
Я думаю, что вы не можете добавить несколько файлов, как это с помощью этой команды. Сначала попробуйте команду, которую я сказал. Это применимо для одного файла. Unnikrishnan 10 лет назад 0
Рад, что это сработало :) Unnikrishnan 10 лет назад 0
мы можем использовать vlc для ffmpeg и rtmp для получения нескольких файлов? Kevin - Dhinesh babu 10 лет назад 0
Я не работал с VLC много. Я думаю, вы можете открыть несколько экземпляров FFMpeg. Я имею в виду просто выполнять команды на разных вкладках для разных файлов. Но нагрузка на систему будет расти. В любом случае попробуйте. Unnikrishnan 10 лет назад 0
давайте [продолжим это обсуждение в чате] (http://chat.stackexchange.com/rooms/12709/discussion-between-unnikrishnan-and-tamil-arvu) Unnikrishnan 10 лет назад 0

Похожие вопросы