[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