Blackmagic Design H.264 Pro Recorder console utility
Latest working driver is Desktop Video 10.11.4 (media express 3.5.7), see https://www.blackmagicdesign.com/support/download/ceb304a75100442e9e763d6b371690d0/Windows
- http://research.m1stereo.tv/bmd_h264_cat/2021-05-17/bmd_h264_cat.exe.win32.7z
- http://research.m1stereo.tv/bmd_h264_cat/2021-05-17/bmd_h264_cat.exe.x64.7z
- receiving MPEG-TS stream from Blackmagic Design H.264 Pro Recorder
- save to file
- send to stdout
- UDP multicast/unicast
- TCP stream saving
Usage: bmd_h264_cat.exe <args> [- | filename] Where args are: -ab <INT> audio bitrate in kbs -vb <INT> video bitrate in kbs -ar <INT> audio samplerate -ac <INT> audio channels -framerate <STR> framerate, see list below -profile <STR> h264 encoding profile to use, see list below -entropy <STR> h264 encoding entropy to use, see list below -level <STR> h264 encoding level to use, see list below -preset <STR> hardware encoder preset name to use, see list in logs -src-x <INT> source rectangle -src-y <INT> -src-width <INT> -src-height <INT> -dst-width <INT> destination width -dst-height <INT> destination height -savefile save files timestamped -udp-host <STR> host where sent UDP packet -udp-port <INT> port where sent UDP packet -udp-sndbuf <INT> SO_SNDBUF of UDP socket -tcp-host <STR> host where sent TCP packet -tcp-port <INT> port where sent TCP packet -tcp-sndbuf <INT> SO_SNDBUF of TCP socket Framerates: [50i] [5994i] [60i] [2398p] [24p] [25p] [2997p] [30p] [50p] [5994p] [60p] Entropyies: [CAVLC] [CABAC] Levels: [12] [13] [2] [21] [22] [3] [31] [32] [4] [41] [42] Profiles: [High] [Main] [Baseline]
bmd_h264_cat.exe -savefile -preset "iPad / iPhone 4" -udp-host 10.1.5.65 -udp-port 40001
bmd_h264_cat.exe -savefile -preset "iPad / iPhone 4" -udp-host 224.1.1.1 -udp-port 40001
bmd_h264_cat.exe -savefile -preset "iPad / iPhone 4" -tcp-host 10.1.5.57 -tcp-port 20001
it could be received by socat and transformed to multicast:
socat -b1316 TCP-LISTEN:20001,reuseaddr,fork UDP-DATAGRAM:224.1.1.1:30001,ttl=10
further step could be implemented with udpxy:
/usr/local/src/2015-11-15/udpxy-1.0.23-9/udpxy -p 10000
stream could be checked with VLC by networks links:
- udp://@224.1.1.1:30001
- http://10.1.5.57:10000/udp/224.1.1.1:30001/demo.ts
bmd_h264_cat.exe -savefile -preset "YouTube 720p" - | c:\ffmpeg\bin\ffmpeg_flv_aac_seq_header.exe -f mpegts -i - -acodec copy -vcodec copy -flvflags aac_seq_header_detect -bsf:a aac_adtstoasc -f flv rtmp://a.rtmp.youtube.com/live2/foo-bar-key
please note, that in this case custom version of ffmpeg used, because of http://lists.ffmpeg.org/pipermail/ffmpeg-devel/2015-November/183483.html
if you have no this version or patch not applied then you have to re-encode audio only.
is argument that could save receivied stream into auto-timestamp-named file - that could helps to avoid loosing some files
not all arguments are really working. API support it, but firmware does not. bitrate, preset, profile parameters works