alibek Posted February 8, 2019 · Report post Что-то не выходит каменный цветок. Запускаю 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted February 8, 2019 · Report post Попробовал сделать так: 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
paradox_ Posted February 8, 2019 · Report post есть подозрения что ютуб хочет полноценный стрим видео+аудио если чего то одного нет, то не пропускает Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted February 8, 2019 · Report post feryfast - а такой профиль кодирования точно существует?) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted February 9, 2019 · Report post Нет, это опечатка. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted February 12, 2019 · Report post Добавил аудиодорожку (-acodec libmp3lame -ar 44100 -threads 6 -qscale 3 -b:a 712000 -bufsize 512k), не помогло. Либо YT хочет настоящий звук, либо дело в чем-то другом. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
MATPOC Posted February 12, 2019 · Report post Видел кучу инструкций, как вещать на Youtube комбинацией VLC и OBS Studio. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted February 12, 2019 · Report post Хотелось бы обойтись минимумом. Я в интернете видел, что у людей и на голом vlc или ffmpeg получается вещать. И я вроде бы делаю также, но почему-то не работает. И в YT нет никакой информации, что именно ему не нравится. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted February 12, 2019 · Report post Сделал так: 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
paradox_ Posted February 12, 2019 · Report post сначала у вас было правильное видео но не было аудио теперь есть аудио но неправильное видео остается третья попытка Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted February 12, 2019 · Report post Не совсем, аудиодорожки на самом деле нет (если судить по отладочному выводу 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
paradox_ Posted February 12, 2019 · Report post стянуть последнюю версию исходников и скомпилить с нужными ключами очевидно нет --enable-filter=anullsrc скорее всего Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
No_name Posted February 12, 2019 · Report post Буквально недавно читал про публикацию потоков на ютуб. Может эти две ссылки наведут на мысль. Кстати есть ютубовский форум Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted February 13, 2019 · Report post 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted February 13, 2019 · Report post Ура. Подсунул файл с 30 минутами тишины (wav на 90 МБ) и наконец получил картинку на YT. Правда на ней много артефактов, но это уже нужно будет подбирать параметры кодера. И нужно будет найти способ обеспечить хотя бы часовую трансляцию (я тогда буду ее перезапускать каждый час). В крайнем случае сделаю wav-файл на 200 МБ, но хотелось бы что-то более адекватное. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted February 13, 2019 · Report post Вот же блин. Оказывается YouTube дает вещать только один канал. Зря время потратил. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted February 13, 2019 · Report post Решил использовать 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted February 13, 2019 · Report post Судя по всему, нужно общаться с ТП сервиса. Или параметры потока чем-то не устраивают, или нужно подбирать площадку (датацентр). Для информации текущее состояние: 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...