Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use ffmpeg to stream live content to azure media services

I've been trying to stream content to azure media services using ffmpeg as it's one of the options described here : http://azure.microsoft.com/blog/2014/09/18/azure-media-services-rtmp-support-and-live-encoders/

My command is :

ffmpeg -v verbose -i 300.mp4 -strict -2 -c:a aac -b:a 128k -ar 44100 -r 30 -g 60 -keyint_min 60 -b:v 400000 -c:v libx264 -preset medium -bufsize 400k -maxrate 400k -f flv rtmp://nessma-****.channel.mediaservices.windows.net:1935/live/584c99f5c47f424d9e83ac95364331e7

I have made sure that the streaming endpoint has one active streaming unit, I also made sure that the channel is actually Ready and I even get it to start streaming (which makes a PublishURL available).

When I execute the ffmpeg command to start streaming, I keep getting the following error :

ffmpeg version 2.5.2 Copyright (c) 2000-2014 the FFmpeg developers built on Dec 30 2014 11:31:18 with llvm-gcc 4.2.1 (LLVM build 2336.11.00) configuration: --prefix=/Volumes/Ramdisk/sw --enable-gpl --enable-pthreads --enable-version3 --enable-libspeex --enable-libvpx --disable-decoder=libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-avfilter --enable-libopencore_amrwb --enable-libopencore_amrnb --enable-filters --enable-libgsm --enable-libvidstab --enable-libx265 --arch=x86_64 --enable-runtime-cpudetect libavutil 54. 15.100 / 54. 15.100 libavcodec 56. 13.100 / 56. 13.100 libavformat 56. 15.102 / 56. 15.102 libavdevice 56. 3.100 / 56. 3.100 libavfilter 5. 2.103 / 5. 2.103 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 1.100 / 1. 1.100 libpostproc 53. 3.100 / 53. 3.100 Routing option strict to both codec and muxer layer [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f9a0a002c00] overread end of atom 'colr' by 1 bytes [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f9a0a002c00] stream 0, timescale not set [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f9a0a002c00] max_analyze_duration 5000000 reached at 5003637 microseconds Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '300.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp42isomavc1 creation_time : 2014-01-11 05:39:32 genre : Trailer artist : Warner Bros. title : 300: Rise of an Empire - Trailer 2 encoder : HandBrake 0.9.9 2013051800 date : 2014 Duration: 00:02:33.24, start: 0.000000, bitrate: 7377 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 (1920x1088), 7219 kb/s, 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc (default) Metadata: creation_time : 2014-01-11 05:39:32 encoder : JVT/AVC Coding Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 157 kb/s (default) Metadata: creation_time : 2014-01-11 05:39:32 Stream #0:2: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 101x150 [SAR 72:72 DAR 101:150], 90k tbr, 90k tbn, 90k tbc rtmp://nessma-****.channel.mediaservices.windows.net:1935/live/584c99f5c47f424d9e83ac95364331e7: Input/output error

The Azure blog post clearly states that this should be possible but I can't find a working example anywhere.

Environment :

  • MacOS Maverick
  • FFMPEG installed from official build
  • 300.mp4 : 1080p trailer of the latest 300 movie
like image 806
Dadicool Avatar asked Mar 17 '23 09:03

Dadicool


1 Answers

I figured out the missing piece here ...

At the end of the publishURL, you need to add /mystream1 at the end. Hopefully, this helps somebody.

like image 80
Dadicool Avatar answered Mar 19 '23 21:03

Dadicool