[FFmpeg-user] what program to use to grab device and send to ffserver?

Ricardo Kleemann ricardo at americasnet.com
Sun Jul 26 02:24:43 CEST 2015


Hello Arnaud,

> On Jun 24, 2015, at 1:08 AM, Arnaud Wijns <arnaud.wijns at ulb.ac.be> wrote:
> 
> Hello,
> 
> Make sure you are using the good input format for your device. BMD is quite touchy in that field.
> For instance, with a 1080i 50fps camera, I must choose the following format : 11 1920x1080 at 25000/1000 fps (interlaced, upper field first). If I use any other, I also have the mire (vertical color bars).
> Do not hesitate to try all available formats. One of them will suit your needs (typically 8, 10, 11 or 13 if you use a full HD camera / 14, 16 for a screen grabber).
> 
> If none of them works, I am not sure what to do in that case ;)
> 

I thought the blackmagic device already provided H.264 in hardware, however it seems the drivers are seeing rawvideo. Do you know how to get h264 video? 

$ ffprobe -f decklink -i 'UltraStudio Mini Recorder at 12'
ffprobe version N-73104-g7604358 Copyright (c) 2007-2015 the FFmpeg developers
  built with Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
  configuration: --prefix=/usr/local --enable-gpl --enable-nonfree --enable-ffplay --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-decklink --extra-cflags=-I/Users/ptl/blackmagicsdk/Mac/include --extra-ldflags=-L/Users/ptl/blackmagicsdk/Mac/include
  libavutil      54. 27.100 / 54. 27.100
  libavcodec     56. 44.100 / 56. 44.100
  libavformat    56. 38.100 / 56. 38.100
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 17.100 /  5. 17.100
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.100 /  1.  2.100
  libpostproc    53.  3.100 / 53.  3.100
[decklink @ 0x7f9182802a00] Found Decklink mode 1920 x 1080 with rate 29.97(i)
[decklink @ 0x7f9182802a00] Frame received (#1) - Input returned - Frames dropped 1
Input #0, decklink, from 'UltraStudio Mini Recorder at 12':
  Duration: N/A, start: 0.000000, bitrate: 1536 kb/s
    Stream #0:0: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
    Stream #0:1: Video: rawvideo (UYVY / 0x59565955), uyvy422, 1920x1080, -5 kb/s, 29.97 tbr, 1000k tbn, 29.97 tbc



> Arnaud.
> 
> Arnaud WIJNS
> ULB Podcast | Informaticien
> http://podcast.ulb.ac.be <http://podcast.ulb.ac.be/>
> 
> Téléphone : 02/650.29.26
> Email : arnaud.wijns at ulb.ac.be <mailto:arnaud.wijns at ulb.ac.be>
> 
> Université libre de Bruxelles
> Campus du Solbosch - CP 160/26
> Avenue F.D. Roosevelt, 50 - 1050 Ixelles
> 
>> Le 24 juin 2015 à 04:42, Ricardo Kleemann <ricardo at americasnet.com> a écrit :
>> 
>> Hello Arnaud,
>> 
>> Thanks again for your great help.
>> 
>> Please see below…
>> 
>>> On Jun 22, 2015, at 5:28 AM, Arnaud Wijns <arnaud.wijns at ulb.ac.be> wrote:
>>> 
>>> Hello Ricardo,
>>> 
>>> I am working on a project which uses the same devices for the same purpose.
>>> 
>>> You can use both bmdtools (with pipe to FFMPEG) or decklink support for FFMPEG (the second solution is easier and works better imo).
>>> 
>>> 1) Install the Mac driver for BMD (BMD Desktop)
>>> 2) Download the Decklink SDK (from https://www.blackmagicdesign.com/support/download/f3e35f03b97440c4893fdf7e0dfdf97c/Mac%20OS%20X)
>>> 3) Install all dependencies for FFMPEG (use Brew as explained in the FFMPEG compilation guide for Mac OS)
>>> —> brew install automake fdk-aac git lame libass libtool libvorbis libvpx \
>>>     opus sdl shtool texi2html theora wget x264 xvid yasm
>>> 4) Download FFMPEG from Git
>>> —> git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
>>>     cd ffmpeg
>>> 5) Prepare the configuration file (adapt according to your needs BUT —enable-deckling is required for BMD). Adapt the path for your Decklink SDK
>>> —> ./configure  --prefix=/usr/local --enable-gpl --enable-nonfree --enable-libass \
>>> --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus \
>>> --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-decklink --extra-cflags=-I/somepath/blackmagicsdk/Mac/include --extra-ldflags=-L/somepath/blackmagicsdk/Mac/include 
>>> 6) If you use Mac OS X 10.9 or above, edit « config.mak » 
>>> —> vi config.mak
>>> 	Remove all references to « -std=c99 » (there are 2)
>>> 7) Edit DeckLinkAPIDispatch.cpp (in /somepath/blackmagicsdk/Mac/include)
>>> —> add the word "static" to the beginning of lines 56, 77, and 157
>>> 56: void     InitDeckLinkAPI (void)
>>> 77: bool            IsDeckLinkAPIPresent (void)
>>> 157: void InitBMDStreamingAPI(void)
>>> 8) Make && sudo make install
>>> 
>>> Now that FFMPEG in installed with Decklink support, you can get the audio-video stream from your BMD devices directly in FFMPEG.
>>> 
>>> Use the following commands:
>>>>> ffmpeg -f decklink -list_devices 1 -i dummy
>>>>> ffmpeg -f decklink -list_formats 1 -i ‘UltraStudio Mini Recorder’
>>>>> ffmpeg -f decklink -i ‘UltraStudio Mini Recorder at 16’ output.mov
>>> 
>> 
>> I was able to build ffmpeg with support for BMD.
>> 
>> 
>> These commands are now all working and I get the set of formats supported.
>> 
>> My problem now is that ffmpeg (and even ffplay) all they show is the multi-colored vertical bars. If I run BMD Media Express, however, I see the video coming from the camera. So something seems quite strange in how ffmpeg is acquiring the source.
>> 
>> I get the error of “No input signal detected”
>> 
>> $ ffmpeg -f decklink -i 'UltraStudio Mini Recorder at 10' output.mov
>> ffmpeg version N-73104-g7604358 Copyright (c) 2000-2015 the FFmpeg developers
>> built with Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
>> configuration: --prefix=/usr/local --enable-gpl --enable-nonfree --enable-ffplay --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-decklink --extra-cflags=-I/Users/ptl/blackmagicsdk/Mac/include --extra-ldflags=-L/Users/ptl/blackmagicsdk/Mac/include
>> libavutil      54. 27.100 / 54. 27.100
>> libavcodec     56. 44.100 / 56. 44.100
>> libavformat    56. 38.100 / 56. 38.100
>> libavdevice    56.  4.100 / 56.  4.100
>> libavfilter     5. 17.100 /  5. 17.100
>> libswscale      3.  1.101 /  3.  1.101
>> libswresample   1.  2.100 /  1.  2.100
>> libpostproc    53.  3.100 / 53.  3.100
>> [decklink @ 0x7fba09800000] Found Decklink mode 1920 x 1080 with rate 30.00
>> [decklink @ 0x7fba09800000] Frame received (#1) - No input signal detected - Frames dropped 1
>> Guessed Channel Layout for  Input Stream #0.0 : stereo
>> Input #0, decklink, from 'UltraStudio Mini Recorder at 10':
>> Duration: N/A, start: 0.000000, bitrate: 1536 kb/s
>>   Stream #0:0: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
>>   Stream #0:1: Video: rawvideo (UYVY / 0x59565955), uyvy422, 1920x1080, -5 kb/s, 30 tbr, 1000k tbn, 30 tbc
>> No pixel format specified, yuv422p for H.264 encoding chosen.
>> Use -pix_fmt yuv420p for compatibility with outdated media players.
>> [libx264 @ 0x7fba0a008800] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
>> [libx264 @ 0x7fba0a008800] profile High 4:2:2, level 4.0, 4:2:2 8-bit
>> [libx264 @ 0x7fba0a008800] 264 - core 144 r2533 c8a773e - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 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=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
>> Output #0, mov, to 'output.mov':
>> Metadata:
>>   encoder         : Lavf56.38.100
>>   Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv422p, 1920x1080, q=-1--1, 30 fps, 15360 tbn, 30 tbc
>>   Metadata:
>>     encoder         : Lavc56.44.100 libx264
>>   Stream #0:1: Audio: aac (libfdk_aac) (mp4a / 0x6134706D), 48000 Hz, stereo, s16, 139 kb/s
>>   Metadata:
>>     encoder         : Lavc56.44.100 libfdk_aac
>> Stream mapping:
>> Stream #0:1 -> #0:0 (rawvideo (native) -> h264 (libx264))
>> Stream #0:0 -> #0:1 (pcm_s16le (native) -> aac (libfdk_aac))
>> Press [q] to stop, [?] for help
>> 
>> 
>> I get the same signal error with ffprobe
>> $ ffprobe -f decklink -i 'UltraStudio Mini Recorder at 10' 
>> ffprobe version N-73104-g7604358 Copyright (c) 2007-2015 the FFmpeg developers
>> built with Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
>> configuration: --prefix=/usr/local --enable-gpl --enable-nonfree --enable-ffplay --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-decklink --extra-cflags=-I/Users/ptl/blackmagicsdk/Mac/include --extra-ldflags=-L/Users/ptl/blackmagicsdk/Mac/include
>> libavutil      54. 27.100 / 54. 27.100
>> libavcodec     56. 44.100 / 56. 44.100
>> libavformat    56. 38.100 / 56. 38.100
>> libavdevice    56.  4.100 / 56.  4.100
>> libavfilter     5. 17.100 /  5. 17.100
>> libswscale      3.  1.101 /  3.  1.101
>> libswresample   1.  2.100 /  1.  2.100
>> libpostproc    53.  3.100 / 53.  3.100
>> [decklink @ 0x7ff23400be00] Found Decklink mode 1920 x 1080 with rate 30.00
>> Input #0, decklink, from 'UltraStudio Mini Recorder at 10':
>> Duration: N/A, start: 0.000000, bitrate: 1536 kb/s
>>   Stream #0:0: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
>>   Stream #0:1: Video: rawvideo (UYVY / 0x59565955), uyvy422, 1920x1080, -5 kb/s, 30 tbr, 1000k tbn, 30 tbc
>> Ricardos-MacBook-Pro:~ ptl$ ffprobe -f decklink -i 'UltraStudio Mini Recorder at 10' 
>> ffprobe version N-73104-g7604358 Copyright (c) 2007-2015 the FFmpeg developers
>> built with Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
>> configuration: --prefix=/usr/local --enable-gpl --enable-nonfree --enable-ffplay --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-decklink --extra-cflags=-I/Users/ptl/blackmagicsdk/Mac/include --extra-ldflags=-L/Users/ptl/blackmagicsdk/Mac/include
>> libavutil      54. 27.100 / 54. 27.100
>> libavcodec     56. 44.100 / 56. 44.100
>> libavformat    56. 38.100 / 56. 38.100
>> libavdevice    56.  4.100 / 56.  4.100
>> libavfilter     5. 17.100 /  5. 17.100
>> libswscale      3.  1.101 /  3.  1.101
>> libswresample   1.  2.100 /  1.  2.100
>> libpostproc    53.  3.100 / 53.  3.100
>> [decklink @ 0x7f9ed0808c00] Found Decklink mode 1920 x 1080 with rate 30.00
>> [decklink @ 0x7f9ed0808c00] Frame received (#1) - No input signal detected - Frames dropped 1
>> Input #0, decklink, from 'UltraStudio Mini Recorder at 10':
>> Duration: N/A, start: 0.000000, bitrate: 1536 kb/s
>>   Stream #0:0: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
>>   Stream #0:1: Video: rawvideo (UYVY / 0x59565955), uyvy422, 1920x1080, -5 kb/s, 30 tbr, 1000k tbn, 30 tbc
>> 
>> 
>>> Cheers,
>>> Arnaud.
>>> 
>>> Arnaud WIJNS
>>> ULB Podcast | Informaticien
>>> http://podcast.ulb.ac.be <http://podcast.ulb.ac.be/>
>>> 
>>> Téléphone : 02/650.29.26
>>> Email : arnaud.wijns at ulb.ac.be <mailto:arnaud.wijns at ulb.ac.be>
>>> 
>>> Université libre de Bruxelles
>>> Campus du Solbosch - CP 160/26
>>> Avenue F.D. Roosevelt, 50 - 1050 Ixelles
>>> 
>>>> Le 16 juin 2015 à 19:30, Ricardo Kleemann <ricardo at americasnet.com> a écrit :
>>>> 
>>>> On Tue, Jun 16, 2015 at 9:03 AM, Carl Eugen Hoyos <cehoyos at ag.or.at> wrote:
>>>> 
>>>>> Ricardo Kleemann <ricardo <at> americasnet.com> writes:
>>>>> 
>>>>>> I have a BlackMagic Design Ultrastudio mini recorder
>>>>>> connected to macbook pro thunderbolt. But it seems
>>>>>> the only program that recognizes the device is FMLE.
>>>>> 
>>>>> What is FMLE?
>>>>> Why can't you feed whatever FMLE produces to ffmpeg
>>>>> (the application)?
>>>>> 
>>>>> 
>>>> Sorry, it is Flash Media Live Encoder, and it does its own encoding and
>>>> sends to a server like Red5 or Flash Media Server.
>>>> 
>>>> I was hoping to not have to use FMLE and instead something that can push
>>>> directly to ffserver.
>>>> 
>>>> Certainly I can feed the FMLE output to ffmpeg and then to ffserver but
>>>> then I'm just adding another component into the chain.
>>>> 
>>>> I was hoping to go directly to ffserver, if for example ffmpeg was able to
>>>> see the input video device.
>>>> 
>>>> thanks
>>>> Ricardo
>>>> _______________________________________________
>>>> ffmpeg-user mailing list
>>>> ffmpeg-user at ffmpeg.org
>>>> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>>> 
>>> _______________________________________________
>>> ffmpeg-user mailing list
>>> ffmpeg-user at ffmpeg.org
>>> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>> 
>> _______________________________________________
>> ffmpeg-user mailing list
>> ffmpeg-user at ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
> 
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user



More information about the ffmpeg-user mailing list