alibek Posted February 8, 2019 Posted February 8, 2019 Что-то не выходит каменный цветок. Запускаю VLC с конфигурационным файлом (опция --vlm-conf), в файле указано следующее: new C313 broadcast enabled loop setup C313 input rtsp://usr:pwd@10.102.3.13 setup C313 output #transcode{vcodec=h264,scale=Auto,width=1280,height=720}:std{access=rtmp,mux=ffmpeg{mux=flv},dst=rtmp://a.rtmp.youtube.com/live2/key} control C313 play Без transcode не работает, ругается на размеры и еще что-то. С transcode как-то непонятно. Запускается, открывает входной поток, буферизует его. tcpdump в этом момент фиксирует обмен трафиком с YouTube. Затем буфер наполняется: [0xab5948] [Media: C313] main input debug: Buffering 100% [0xab5948] [Media: C313] main input debug: Stream buffering done (1038 ms in 1000 ms) [0xab5948] [Media: C313] main input debug: Decoder buffering done in 0 ms и более ничего не происходит, в таком состоянии VLC висит, пока не остановишь, трафик на YouTube не ходит. На самом YouTube трансляция не ведется. Если перезапускать VLC несколько раз, добившись от IP-камеры отказов в подключении, то VLC начинает проводить повторные попытки подключения и в этот момент трафик между сервером и YouTube активно ходит и на YouTube появляется сообщение, что вещание вот-вот начнется. Но как только подключение к камере осуществляется успешно и потом буферизуется, снова ничего не происходит. Вставить ник Quote
alibek Posted February 8, 2019 Author Posted February 8, 2019 Попробовал сделать так: ffmpeg \ -i rtsp://usr:pwd@10.102.3.13 \ -vcodec libx264 -pix_fmt yuv420p -preset feryfast -r 30 -g 2000k -b:v 1000k \ -f flv "rtmp://a.rtmp.youtube.com/live2/key" Теперь трафик на YouTube вроде бы уходит. На YouTube трансляция в статусе "Запуск", но картинки нет. Вставить ник Quote
paradox_ Posted February 8, 2019 Posted February 8, 2019 есть подозрения что ютуб хочет полноценный стрим видео+аудио если чего то одного нет, то не пропускает Вставить ник Quote
Ivan_83 Posted February 8, 2019 Posted February 8, 2019 feryfast - а такой профиль кодирования точно существует?) Вставить ник Quote
alibek Posted February 12, 2019 Author Posted February 12, 2019 Добавил аудиодорожку (-acodec libmp3lame -ar 44100 -threads 6 -qscale 3 -b:a 712000 -bufsize 512k), не помогло. Либо YT хочет настоящий звук, либо дело в чем-то другом. Вставить ник Quote
MATPOC Posted February 12, 2019 Posted February 12, 2019 Видел кучу инструкций, как вещать на Youtube комбинацией VLC и OBS Studio. Вставить ник Quote
alibek Posted February 12, 2019 Author Posted February 12, 2019 Хотелось бы обойтись минимумом. Я в интернете видел, что у людей и на голом vlc или ffmpeg получается вещать. И я вроде бы делаю также, но почему-то не работает. И в YT нет никакой информации, что именно ему не нравится. Вставить ник Quote
alibek Posted February 12, 2019 Author Posted February 12, 2019 Сделал так: ffmpeg -re -rtsp_transport tcp \ -i "$SRC" \ -acodec libmp3lame -ab 128k -ar 44100 \ -vcodec copy -threads 2 -bufsize 512k \ -f flv "$DST/$KEY" При запуске индикатор трансляции на YouTube на несколько секунд становится зеленым. Но картинка так и не появляется, а еще через несколько секунд индикатор снова становится серым. Вставить ник Quote
paradox_ Posted February 12, 2019 Posted February 12, 2019 сначала у вас было правильное видео но не было аудио теперь есть аудио но неправильное видео остается третья попытка Вставить ник Quote
alibek Posted February 12, 2019 Author Posted February 12, 2019 Не совсем, аудиодорожки на самом деле нет (если судить по отладочному выводу ffmpeg). Если делаю так: ffmpeg -re -rtsp_transport tcp \ -i "$SRC" \ -f lavfi -i anullsrc \ -acodec libmp3lame -ab 128k -ar 44100 \ -vcodec libx264 -pix_fmt yuv420p -preset veryfast -threads 2 -bufsize 512k -r 30 -g 2000k -b:v 1000k \ -f flv "$DST/$KEY" то получаю ошибку Input #0, rtsp, from 'rtsp://***@10.102.3.13/live/main': Metadata: title : IPCAM Duration: N/A, start: 0.041000, bitrate: N/A Stream #0:0: Video: h264 (Main), yuvj420p, 1280x720, 24.92 tbr, 90k tbn, 180k tbc [Parsed_anullsrc_0 @ 0x1e8dd20] Cannot select sample rate for the link between filters Parsed_anullsrc_0 and out. anullsrc: Invalid argument (указывать параметры для anullsrc я пробовал, anullsrc=channel_layout=stereo:sample_rate=44100 дает такую же ошибку) Если строку с lavfi вообще убрать (как в предыдущем сообщении), то ошибки нет и ffmpeg запускается, но аудиодорожки в выводе нет: Input #0, rtsp, from 'rtsp://***@10.102.3.13/live/main': Metadata: title : IPCAM Duration: N/A, start: 0.042000, bitrate: N/A Stream #0:0: Video: h264 (Main), yuvj420p, 1280x720, 24.92 tbr, 90k tbn, 180k tbc Output #0, flv, to 'rtmp://a.rtmp.youtube.com/live2/***': Metadata: title : IPCAM encoder : Lavf54.29.104 Stream #0:0: Video: h264 ([7][0][0][0] / 0x0007), yuv420p, 1280x720, q=-1--1, 1000 kb/s, 1k tbn, 30 tbc Stream mapping: Stream #0:0 -> #0:0 (h264 -> libx264) Как правильно "приделать" аудиодорожку к видеопотоку (если причина в том, что YouTube хочет видео+аудио)? Вставить ник Quote
paradox_ Posted February 12, 2019 Posted February 12, 2019 стянуть последнюю версию исходников и скомпилить с нужными ключами очевидно нет --enable-filter=anullsrc скорее всего Вставить ник Quote
No_name Posted February 12, 2019 Posted February 12, 2019 Буквально недавно читал про публикацию потоков на ютуб. Может эти две ссылки наведут на мысль. Кстати есть ютубовский форум Вставить ник Quote
alibek Posted February 13, 2019 Author Posted February 13, 2019 22 часа назад, paradox_ сказал: стянуть последнюю версию исходников и скомпилить с нужными ключами Это как-бы непросто. Сервер довольно старый (Debian 7), там кучу всего нужно обновлять, чтобы ffmpeg скомпилировать. Пока что просто подсунул файл silent.wav с тишиной. 21 час назад, Brainiac сказал: Может эти две ссылки наведут на мысль. Спасибо, поизучаю. Пока что запустить не удается: Input #0, wav, from './silent.wav': Duration: 00:00:02.00, bitrate: 352 kb/s Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 22050 Hz, mono, s16, 352 kb/s [rtsp @ 0x2047be0] Estimating duration from bitrate, this may be inaccurate Input #1, rtsp, from 'rtsp://***@10.102.3.13/live/main': Metadata: title : IPCAM Duration: N/A, start: 0.051000, bitrate: N/A Stream #1:0: Video: h264 (Main), yuvj420p, 1280x720, 25.42 tbr, 90k tbn, 180k tbc [libx264 @ 0x203c420] VBV maxrate unspecified, assuming CBR [libx264 @ 0x203c420] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 [libx264 @ 0x203c420] profile High, level 3.1 [libx264 @ 0x203c420] 264 - core 132 - H.264/MPEG-4 AVC codec - Copyleft 2003-2013 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=2 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=2 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=2000000 keyint_min=30 scenecut=40 intra_refresh=0 rc_lookahead=10 rc=cbr mbtree=1 bitrate=1500 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=1500 vbv_bufsize=512 nal_hrd=none ip_ratio=1.40 aq=1:1.00 Output #0, flv, to 'rtmp://a.rtmp.youtube.com/live2/***': Metadata: encoder : Lavf54.29.104 Stream #0:0: Video: h264 ([7][0][0][0] / 0x0007), yuv420p, 1280x720, q=-1--1, 1500 kb/s, 1k tbn, 30 tbc Stream #0:1: Audio: mp3 ([2][0][0][0] / 0x0002), 44100 Hz, mono, s16, 128 kb/s Stream mapping: Stream #1:0 -> #0:0 (h264 -> libx264) Stream #0:0 -> #0:1 (pcm_s16le -> libmp3lame) Скорее всего из-за того, что аудиофайл маленькой продолжительности (2 секунды). А зацикливать аудио ffmpeg не умеет. Вставить ник Quote
alibek Posted February 13, 2019 Author Posted February 13, 2019 Ура. Подсунул файл с 30 минутами тишины (wav на 90 МБ) и наконец получил картинку на YT. Правда на ней много артефактов, но это уже нужно будет подбирать параметры кодера. И нужно будет найти способ обеспечить хотя бы часовую трансляцию (я тогда буду ее перезапускать каждый час). В крайнем случае сделаю wav-файл на 200 МБ, но хотелось бы что-то более адекватное. Вставить ник Quote
alibek Posted February 13, 2019 Author Posted February 13, 2019 Вот же блин. Оказывается YouTube дает вещать только один канал. Зря время потратил. Вставить ник Quote
alibek Posted February 13, 2019 Author Posted February 13, 2019 Решил использовать rtsp.me. Прямой доступ к камерам давать не хочется, решил их запроксировать. В VLC использую такую конфигурацию: new C313 broadcast enabled loop setup C313 input rtsp://usr:pwd@10.102.3.13/live/main setup C313 output #rtp{sdp=rtsp://x.y.z.90:8554/c313.sdp} control C313 play Подключаюсь, соответственно, к rtsp://x.y.x.90:8554/c313.sdp. Для проверки подключаюсь с помощью VLC на другой машине. При попытке подключения что-то происходит, ресайзится окно плеера (то есть параметры видеопотока приходят), даже картинка появляется, но очень низкого качества (сплошные артефакты каждые несколько секунд). Нет идей, из-за чего такое происходит? Дело точно не на входе, так как на этом же сервере этот же VLC ретранслирует камеры в мультикастовый IPTV: new CAM-313 broadcast enabled loop setup CAM-313 input rtsp://usr:pwd@10.102.3.13/live/main setup CAM-313 output #std{access=udp,dst=239.0.3.13:1234} control CAM-313 play И в IPTV трансляция идет гладко. То есть проблема на выходе. Но на сервере гигабитный ненагруженный линк. Вставить ник Quote
alibek Posted February 13, 2019 Author Posted February 13, 2019 Судя по всему, нужно общаться с ТП сервиса. Или параметры потока чем-то не устраивают, или нужно подбирать площадку (датацентр). Для информации текущее состояние: new CAM-313 broadcast enabled loop setup CAM-313 input rtsp://usr:pwd@10.102.3.13/live/main setup CAM-313 output #duplicate{dst=std{access=udp,dst=239.0.3.13:1234},dst=rtp{sdp=rtsp://x.y.z.90:8554/c313.sdp}} control CAM-313 play В IPTV воспроизводится хорошо. На внешнем ПК (то есть не в одной сети с сервером, а подключенным через интернет) VLC по ссылке rtsp://x.y.z.90:8554/c313.sdp воспроизводит хорошо. А вот на сервисе rtsp.me картинки пока нет. (ДОБАВЛЕНО) Все оказалось просто. Нужно было выбрать транспорт udp. Если кому интересно: https://rtsp.me/embed/6bDkF45T/ https://rtsp.me/embed/2etb85rK/ Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.