Blackmagic Design HyperDeck Studio 4K Pro - VCR

HyperDeck Studio 4K Pro - VCR Blackmagic Design - Free user manual and instructions

Find the device manual for free HyperDeck Studio 4K Pro Blackmagic Design in PDF.

📄 594 pages English EN Download 💬 AI Question 10 questions ⚙️ Specs
Notice Blackmagic Design HyperDeck Studio 4K Pro - page 5
Pick your language and provide your email: we'll send you a specifically translated version.
Product Type Professional Disk Recorder / Player
Model HyperDeck Studio 4K Pro
Brand Blackmagic Design
Dimensions (approx.) 48.3 x 4.4 x 30.5 cm (W x H x D, standard rack 1U)
Weight (approx.) 4.5 kg
Power Supply AC 100-240V via IEC input (dual for redundancy); DC 12V input for external battery
Power Consumption Approx. 60 W
Supported Resolutions HD up to 1080p60, Ultra HD up to 2160p60
Video Codecs H.264, H.265, Apple ProRes, DNxHD, DNxHR
Storage Media SD UHS-II cards, 9.5 mm SSDs, USB-C flash drives, MultiDock 10G
Video Connectivity 2 x 12G-SDI inputs, 2 x 12G-SDI outputs; HDMI input/output; 3G-SDI monitor output
Audio Connectivity Embedded SDI/HDMI audio; built-in speaker; headphone jack output
Network 10GbE Ethernet for control and FTP transfer
Remote Control RS-422 (input/output); Ethernet (Blackmagic protocol); compatible with ATEM switchers
Timecode Generation Timecode input/output (XLR); modes: video, external, internal, Regen, preset
Reference (Genlock) Reference input/output: black burst / tri-sync; adjustable input synchronization
Main Functions Recording and playback on multiple media; loop playback; Jog/Shuttle/Scrub modes; 3D LUT on monitor output; USB webcam mode
Display Color LCD screen with audio, timecode, and media status indicators
Maintenance and Cleaning Clean with a soft, dry cloth. Do not use liquids or abrasive products.
Safety Connect to a socket with protective conductor; do not expose to moisture; use in tropical climate up to 40°C; max altitude 2000 m; adequate ventilation
Spare Parts and Repairability No user-serviceable parts. Contact Blackmagic Design support for any repairs.
Warranty 12 months limited (parts and labor)

Frequently Asked Questions - HyperDeck Studio 4K Pro Blackmagic Design

Which video codecs can I use with the HyperDeck Studio 4K Pro?
The HyperDeck supports H.264, H.265 (for 4K), Apple ProRes, DNxHD, and DNxHR codecs. Selection is made via the LCD menu or Blackmagic HyperDeck Setup software.
What types of storage media are compatible?
The device accepts SD UHS-II cards, 9.5 mm SSDs (2.5-inch format), USB-C flash drives, and Blackmagic MultiDock 10G for external hard drives. For Ultra HD, use fast media (e.g., Samsung 870 EVO, Angelbird AV Pro).
Can I control the HyperDeck remotely?
Yes, via RS-422 (DE-9 port) or via Ethernet using the Blackmagic HyperDeck protocol. It can also be controlled by an ATEM switcher on the same network. Enable remote control in the menu or with the Rem button on the front panel.
How do I synchronize the HyperDeck with other equipment?
Use the Genlock input (ref in) to lock the video to an external reference signal (black burst or tri-sync). The Settings menu allows you to choose the source (auto, input, external) and adjust timing (lines/pixels).
Does the HyperDeck support HDR?
Yes, the HyperDeck Studio 4K Pro automatically detects HDR metadata and displays it via HDMI output. You can override the HDR format in the Settings menu by choosing Rec.709, Rec.2020 SDR, HLG, or ST2084 (with luminance from 300 to 4000 cd/m²).
How do I use the HyperDeck as a webcam?
Connect the HyperDeck to a computer via the USB-C port (ext disk). It will then be recognized as a webcam. In your streaming software (OBS, Skype), select 'HyperDeck Studio 4K Pro' as the video and audio source. Detailed setup is in the manual.
How do I update the firmware?
Download the latest Blackmagic HyperDeck Setup from www.blackmagicdesign.com/support. Connect the HyperDeck to the computer via USB or Ethernet, launch the utility, and follow the instructions to install the update.
Can I transfer files over the network?
Yes, the HyperDeck supports FTP. From an FTP client (Cyberduck, FileZilla), connect to the HyperDeck's IP address (no password required, check 'Anonymous'). You can copy files to connected disks, even during recording.
What do the slot LEDs mean?
The LEDs indicate media status: green = verification in progress (then off when ready), red = recording, orange = error (unformatted or incompatible media). During playback, the active slot LED blinks green.
How do I record simultaneously from multiple cameras with sync?
Connect each HyperDeck to a video source and a common reference (genlock). Enable input sync in the Recording menu so that all recorders have the same timecode. Once clips are imported into DaVinci Resolve, the Sync Bin feature will automatically align them.

User questions about HyperDeck Studio 4K Pro Blackmagic Design

0 question about this device. Answer the ones you know or ask your own.

Ask a new question about this device

The email remains private: it is only used to notify you if someone responds to your question.

No questions yet. Be the first to ask one.

Download the instructions for your VCR in PDF format for free! Find your manual HyperDeck Studio 4K Pro - Blackmagic Design and take your electronic device back in hand. On this page are published all the documents necessary for the use of your device. HyperDeck Studio 4K Pro by Blackmagic Design.

USER MANUAL HyperDeck Studio 4K Pro Blackmagic Design

HyperDeck Disk Recorders

Video control room with multiple screens displaying Chinese text and images of a business daily, featuring two operators at workstations.

Languages

To go directly to your preferred language, simply click on the hyperlinks listed in the contents below.

English 3

日本語...73

Français 144

Deutsch 215

Español 286

中文 357

한국어 428

Русский 499

Italiano 570

Português 641

Türkçe 712

Blackmagic Design HyperDeck Studio 4K Pro - Languages - 1

natural_image Circular portrait photo of a smiling man in a black polo shirt against a gray background (no text or symbols)

Welcome

Thank you for purchasing your Blackmagic HyperDeck disk recorder!

When we designed the original Blackmagic HyperDeck disk recorders back in 2011, we wanted to make it easier and more affordable to record and play back professional video on removable 2.5" Solid State Disks.

Now we are excited to present our new range of HyperDeck disk recorders that let you record HD and Ultra HD video using SD cards, SSDs and now USB flash disks. You can even connect a Blackmagic MultiDock 10G and record or play back files on external hard drives!

HyperDeck Studio Plus and Pro models feature familiar broadcast deck controls with a search dial for jog, shuttle and scroll playback. The search dial's clutch mechanism lets you feel the playback so you can search through your clips without taking your eyes off the monitor. They even include a front headphone connection and speaker so you can quickly check your audio directly from your HyperDeck, plus many more features!

We hope you get years of use from your HyperDeck disk recorder and that it will serve you well with your productions!

Please check the support page at www.blackmagicdesign.com for the latest version of this manual and updates to the HyperDeck software. Keeping your software up to date will always ensure you get all the latest features. When downloading software, please register with your information so we can keep you updated when new software is released. We are constantly working on new features and improvements, so we would love to hear from you!

Grant Petty

Grant Petty

CEO Blackmagic Design

Contents

Introducing HyperDeck Disk Recorders 5

Getting Started 6

Plugging in Power 6

Connecting Video and Audio 6

Checking Audio 7

Plugging in Media 7

Recording Video 9

Recording on multiple media 9

Playback

Playing Video with HyperDeck 10

Using the Search Dial 11

Using the Front Panel 13

Media Slot Indicators 13

Using the LCD Menu 14

Settings 15

Rear Panel 27

Using the Monitor Output 29

Storage Media 32

SD Card 32

SSD 34

EXT Disk 35

Formatting Media 37

Preparing Media on a Computer 37

Using your HyperDeck as a Webcam 38

Setting the Webcam Source 38

Setting up Open Broadcaster 39

Blackmagic HyperDeck Setup 41

Using HyperDeck Setup 41

LUTs Page 42

Updating the Internal Software 43

Teranex Mini Rack Shelf 10 44

RS-422 Control 45

Transferring Files over a Network 50

Connecting to an ATEM Switcher 52

Understanding Post

Production Workflows 53

Developer Information 54

Blackmagic HyperDeck Ethernet

Protocol 54

Protocol Commands 54

Protocol Details 58

Help 69

Regulatory Notices 70

Safety Information 71

Warranty 72

Introducing HyperDeck Disk Recorders

Your Blackmagic HyperDeck disk recorder is part of a family of HD and 4K disk recorders designed to fit your own production workflow. HyperDeck Studio HD Pro and HyperDeck Studio 4K Pro are built to fit inside a single rack unit and are large enough to record and play back files on both SD cards and 9.5mm SSDs.

HyperDeck Studio HD Mini and HyperDeck Studio HD Plus are smaller disk recorders that can be used comfortably on your desktop or fitted in a rack unit via an optional Teranex Mini Rack Shelf.

Blackmagic Design HyperDeck Studio 4K Pro - Introducing HyperDeck Disk Recorders - 1

natural_image Front view of a black audio workstation with multiple video player channels and playback controls (no readable text or symbols)

HyperDeck Studio HD Pro and HyperDeck Studio 4K Pro

Blackmagic Design HyperDeck Studio 4K Pro - Introducing HyperDeck Disk Recorders - 2

natural_image Black audio recording device with playback controls and a digital display showing time, battery, and track (no readable text or symbols)

HyperDeck Studio HD Mini

Blackmagic Design HyperDeck Studio 4K Pro - Introducing HyperDeck Disk Recorders - 3

natural_image Black audio recording device with control buttons and playback screen (no readable text or symbols)

HyperDeck Studio HD Plus

All models can also record to USB flash disks and support HD video up to 1080p60. HyperDeck Studio 4K Pro supports Ultra HD video up to 2160p60.

Recording and playback functions generally operate the same way on all models, with extra features on larger models giving you greater playback control and broader connection options.

This instruction manual provides all the information you need to get started with your HyperDeck disk recorder and master all the controls and features!

Getting Started

Getting started with your HyperDeck Studio disk recorder is as easy as connecting power, plugging in your video sources and destination equipment and inserting your SSDs or SD cards.

Plugging in Power

To power your HyperDeck, plug a standard IEC cable to your HyperDeck's power input on the rear panel.

Front panel of an electronic device showing various ports and connectors with labels such as 'USB1.1', 'USB2', and 'USB3'.

If your HyperDeck model has an additional IEC power input, you can connect to another power source for redundancy. For example, connecting the second input to an uninterrupted power supply, or UPS, will instantly take over if the primary source fails.

All models also include a 12V DC input, which lets you connect power from an external 12V battery.

Blackmagic Design HyperDeck Studio 4K Pro - Plugging in Power - 2

natural_image Front panel of an electronic device showing various ports and connectors (no readable text or symbols)

HyperDeck Studio HD Mini can also be powered via an AC plug pack. If your power supply has a locking ring, secure the connection to HyperDeck Studio HD Mini by tightening the connector to the unit. This locks the power cable in place to prevent accidental disconnection.

Once powered, the LCD display will prompt you to select your language. Using the search dial, scroll to the language you wish to use and press the flashing 'set' button. This will take you to the home screen. For more information about the home screen and LCD menus, refer to the 'using the front panel' section.

Select A Language English 中文 日本語 한국어

Connecting Video and Audio

Plug your source video to the SDI or HDMI inputs, and your destination equipment to the SDI or HDMI outputs. For example, a source could be a digital cinema camera and a destination could be an HDMI television or SDI monitor.

All HyperDeck models support HD video up to 1080p60. HyperDeck Studio 4K Pro has 12G-SDI connectors so you can input or output Ultra HD up to 2160p60 using a single BNC cable.

Front panel of a network device showing various ports and connectors with labels such as 'USB 1.0', 'USB 2.0', and 'USB 3.0'.

You can confirm the SDI or HDMI video signal by monitoring the built in LCD on the front panel.

TIP If you don't see the video source on the LCD, it might be because you have connected to the other source input. Press the 'input' button on the front panel to cycle through the SDI or HDMI sources.

Audio is embedded in the SDI or HDMI signal so you don't have to worry about connecting audio. You can check the audio levels by observing the meters next to the video image on the LCD.

Checking Audio

If your HyperDeck features a speaker and headphone port on the front panel, you can quickly check your audio using the built in speaker or by plugging in headphones. To listen, press and hold the speaker button and rotate the search dial to adjust the volume. A volume indicator will appear on the LCD home screen.

Double press the speaker button to keep the speaker enabled. Double press again to disable.

Blackmagic Design HyperDeck Studio 4K Pro - Checking Audio - 1

natural_image Illustration of hands holding a device panel with buttons and media icons (no readable text or symbols)

Plugging in Media

All HyperDeck Studio models ship ready to record immediately without having to configure any settings. All you need is a formatted SSD or SD card.

You can easily format media via the LCD menu settings. You can also format using a computer. Refer to the 'Formatting Media' section in this manual for more information on how to format your media. You can also find information about the types of media that are best for recording video and a list of recommended drives and cards.

To plug in an SSD:

1 Hold a 9.5mm SSD with the connection pins facing the bottom and aligned with your HyperDeck's drive bay. Gently push the SSD into the drive bay until you feel it slot into place.
2 Your HyperDeck Studio will verify the SSD. This is shown by an illuminated green indicator surrounding the drive bay. When the green indicator stops, your HyperDeck is ready to record!

ICG FREE 00:00:00:00

The drive indicator will illuminate green when reading the media and then turn off when your HyperDeck is ready to record

To remove the SSD, grip the outer edge and gently pull away from the unit. You will feel the SSD disconnect from the slot.

Diagram illustrating the process of USB drive transfer from a server to two different SSDs, with arrows indicating the direction of data transfer.

Hold your SSD with the connection pins facing the bottom, aligned with your HyperDeck Studio's drive bay and gently push the SSD into the drive bay until you feel it slot into place

To plug in an SD card:

1 Hold the SD card with the gold connectors facing your HyperDeck Studio's LCD and align it with the media slot. Now gently push the card into the slot until you feel it lock firmly into place.

Blackmagic Design HyperDeck Studio 4K Pro - To plug in an SD card: - 1

natural_image Diagram of a server rack with ports and an orange arrow indicating a specific component (no text or symbols present)

2 Your HyperDeck Studio will verify the SD card. This is shown by an illuminated green indicator above the SD card slot.

Blackmagic Design HyperDeck Studio 4K Pro - To plug in an SD card: - 2

natural_image Front panel of a video recording device showing playback buttons, track, and a digital display (no readable text or symbols)

When the indicator turns off and the stop button is illuminated, your HyperDeck Studio is ready to record.

TIP To remove the card, gently push until you feel it click, then release. The card will eject a short distance, allowing you to hold the edge of the card and remove it from the slot.

Your HyperDeck Studio is now ready for recording and playback!

Recording Video

After confirming that your video source is displayed on the LCD, you can start recording straight away!

To start recording, press the record button. When recording to an SD card, the slot indicator will illuminate red along with the record button, the play button will illuminate and a record icon will appear in the LCD home screen. When recording to an SSD, the dynamic media indicator will illuminate red.

2160p60 3:42:20 00:01:20:51 2160p60 00:01:20:51 STL JON SCR

While HyperDeck Studio is recording, the storage indicator on the LCD will alternate between displaying the active slot and record time remaining on the media.

To finish the recording, press the stop button. Press the 'play' button to start playback immediately.

TIP If you want to change the codec being used, you can change the codec setting using the Blackmagic HyperDeck Setup utility. For more information, refer to the 'Blackmagic HyperDeck Setup' section later in this manual.

Recording on multiple media

When there is less than 3 minutes of record time remaining on your SD card or SSD, the timecode counter on your HyperDeck Studio's LCD will turn red and the 'stop' button will flash slowly.

H20 REE 03:42:34.45

This also means there is no second disk with space that recording can continue onto. In this case, you simply need to insert a disk with space so recording can continue. Once you insert a blank disk into an empty slot or the ext disk input, the slow flashing will stop and the timecode

will revert to white. This means HyperDeck can continue to record, because this second disk has been checked ok and there is space to keep recording.

When more than one media is connected to HyperDeck Studio, the recording will spill from one disk or drive to the next. This will be shown in the upper right corner of the home screen.

2160p60 03:42:35:04 SSD 1 → SSD 2

Swapping Disks During Recording

If you want to change the disk you are recording to at any time, and you have a second disk that has free space, then simply hold down the record button and the recording will move from the current disk to the next disk. This is very useful when you want to get that disk out of the HyperDeck without pausing recording. This can happen during live events when you need to get an important recording out to another location, but you don't want to miss anything or stop recording.

If the record button flashes during a recording, there may be problems with your media resulting in dropped frames. This can occur when recording Ultra HD using slower media, for example, recording 2160p30 ProRes HQ uses a higher data rate compared to ProRes Proxy, so your SD cards or SSDs need to be the fastest available. For a list of approved media, refer the 'storage media' section in this manual.

Playback

The transport controls feature buttons commonly found on traditional broadcast decks including 'record', 'rewind', 'play', 'fast fwd' and 'stop'. 'Skip' reverse and 'skip' forward buttons operate like previous and next buttons so you can quickly navigate from clip to clip.

Playing Video with HyperDeck

1 Press the 'play' button once for instant playback and you'll see your video on the LCD and any displays connected to your HyperDeck's video outputs.
2 To skip to the next clip, press the 'next clip' button on the control panel.
3 Press 'previous clip' once to go to the start of the current clip or press twice to skip back to the start of the previous clip.

2160p30 SD 00:00:20:16 STL JOG SCR

Press the play button on your HyperDeck's control panel to play back a clip and press the forward or reverse skip buttons to restart the current clip or skip to a different one

TIP To play back video files on your HyperDeck, you will need to set the codec to match. You can do this using the LCD menu. Refer to the 'using the LCD menu' and 'settings' sections for more information.

Loop Playback

If you want playback to continue indefinitely, you can set your HyperDeck to loop by pressing the play button again during playback. When loop playback is enabled, you will see the loop icon appear on the LCD. There are two loop modes available.

Loop clip Loops the currently playing clip. Loop all clips Loops all recorded clips on your media.

Dynamic LEDs

During playback, the bezel surrounding the drive bay illuminates green in a circular motion to indicate the playback speed and direction

Front panel of a media player interface with labeled buttons and playback controls

TIP If the play button flashes on HyperDecks that record on SSDs, this means the disk is not fast enough and playback cannot keep up. We recommend you change to a more compressed recording format such as H.264 or use a faster recommended SSD or external disk for Ultra HD recording.

Using the Search Dial

Using the search dial during playback is a fast way to move through your clips and select specific moments to play, or review them frame by frame. This can be important if you need to locate a specific moment in a clip, either by visually monitoring the clip as you turn the dial, or by searching for a specific timecode point. It is also helpful for parking the playhead at a specific cue point, ready for the clip to be rolled to air during a live broadcast.

100 SEER 00:01:22:11

Press the 'search' button to cycle through search dial modes

Search dial modes include Jog, Shuttle and Scroll.

Blackmagic Design HyperDeck Studio 4K Pro - Using the Search Dial - 2Jog Plays forwards or backwards through the clip frame by frame allowing precise control.
Blackmagic Design HyperDeck Studio 4K Pro - Using the Search Dial - 3Shuttle Plays forwards or backwards at a faster rate. The playback will vary based on how far you turn the dial.
Blackmagic Design HyperDeck Studio 4K Pro - Using the Search Dial - 4Scroll Even faster playback depending on how far you turn the dial. This mode is helpful to move quickly through a long clip when searching for a specific moment.

Larger models have dedicated search mode buttons and feature a search dial with a built in clutch mechanism that provides tactile feedback during use. This allows you to feel your way through the clip while watching it on a television or monitor.

SEARCH MENU SET 2160p30 SSD 1 00:01:22:11 STL JOG SCR

Press the dedicated 'JOG', 'STL' and 'SCR' buttons to select jog, shuttle and scroll search modes

2160p60 SSD 1 00:01:30:00 STL JOG SCR

TIP To resume normal playback, press the 'play' or 'stop' button.

Using the Front Panel

When recording or playing video with HyperDeck, any information you need to know is displayed on the unit itself via LED indicators for each media slot and the built in LCD.

HyperDeck Studio Home Screen

Time Remaining and Media Indicator –

During recording, the icon will consistently change between the time remaining on the disk and the current drive in use. During playback, the active media icon will be displayed.

Format Indicator – Shows the format of the input or file for playback. It will also indicate the input source when toggling the 'input' button on some HyperDeck Studio models along with the current volume when adjusting the speaker and headphone volumes via the front panel button and search dial.

Status Indicator – Displays the current status of the deck, including the current playback mode.

SKIP REC SKIP INPUT SEARCH MENU SET 00:02:30:24 2160p30 STL JOG SCR

Audio Meters – Displays

the audio levels of the source

or file during playback.

Media Slot Indicators

When you first power on HyperDeck, or any time you insert an SSD or SD card, the slot indicator will illuminate green while checking the media and then switch off. If the disk has not been formatted correctly, or fails to work, the slot will illuminate solid orange until the disk is removed. In this case, check if the disk is formatted correctly and also that it works with a computer.

H2G REE 03:42:35:04

HyperDeck's media slot indicators illuminate to let you know the status of the disk, for example red when recording, and green during playback

Using the LCD Menu

Press the 'menu' button on the front panel to open the menu settings.

REC SKIP INPUT PLAY F FWD STOP SEARCH MENU Record Input SDI Codec H.254 SDI Trigger Record None Input Re-Sync On STL JOG SCR

Turn the search dial or press the skip buttons to navigate between the menu options and press 'set' to select a submenu.

Setup Name Hyper Deck Studio 4K Pro Language English Date 16 July 2021 Time 15:12 STL JOG SCR

Turn the search dial to move through the menu settings

With the menu item selected, press the 'set' button.

Setup Name HyperDock Studio 4K Pro Language English Date 16 July 2021 Time 15:12 STL JOG SCR SEARCH MENU SET

Adjust settings using the search dial or skip fwd and skip bwd buttons and confirm them by pressing the 'set' button.

Press 'menu' to step back through the options and return to the home screen.

Settings

Record Menu

Record
InputSDI
CodecH.264 SDI
Trigger RecordNone
Input Re-SyncOn

Input

Select your SDI or HDMI source using the input setting. You can also change your input source using the 'input' button on the front panel.

Codec

All HyperDeck Studio models can record compressed video using H.264, Apple ProRes and DNxHD codecs. HyperDeck Studio 4K Pro models can also use H.265 and DNxHR codecs when recording 4K media.

Trigger Record

There are two trigger record modes available, video start/stop and timecode run.

Some cameras, such as the URSA Mini, send a signal over SDI to start and stop recording on external recorders. Tapping on 'video start/stop' will trigger the HyperDeck to start or stop recording when the record button is pressed on the camera.

Use the time 'timecode run' option to trigger the unit to start recording when it receives a valid timecode signal via the inputs. When the signal stops, recording will also stop. Disable trigger recording by tapping the 'none' option.

NOTE When recording from an HDMI or SDI camera, make sure the output is clean with overlays turned off as any overlays that are present in your camera's video output will be recorded with your image.

Input Re-Sync

This setting will enable a re-sync on the video input and ensure video is locked to the external reference before recording. The video output will remain locked to reference even when switched to recording, as the input itself is being resynchronized. This feature is used for ISO recording where you need multiple decks timecode locked but some sources are non-sync. This feature is normally turned off so video inputs are recorded without frames being added or removed from the input video.

All broadcast decks can normally use a reference input to lock the video output during playback. This means the output of the HyperDeck playback will be locked to the reference input so it won't need to be resynchronized when connected to a large broadcast system.

However, when the deck goes into record, the output will switch over to the input because you normally want the input video recorded untouched with the same untouched video sent to other downstream equipment that's connected to the HyperDeck video outputs.

However, HyperDeck Studio has a unique feature that helps with ISO recording. It will allow you to completely reverse this process and resynchronize the video input to the reference input. What this means is you can connect a non-sync source to the HyperDeck and it will retime the video input to the video reference and then record it.

Non-sync sources could be computers, consumer cameras or any video equipment that is unable to have a reference connected to it. It could even be an incoming video feed from another studio or external broadcaster. Non-sync sources cause problems with ISO recording, as you need the timecode on all recordings to match perfectly over time. A non-sync source will run faster or slower than your other sources and slip out of sync vs the timecode quite quickly during the recording. This makes multi-cam editing a horrific process as the sources won't have matching timecode.

With input re-sync turned on, the HyperDeck video input will be analyzed and if it starts falling behind a frame will be repeated, or if it starts running ahead of the reference, a frame will be removed. This is called resynchronization and the processing on the input is called a frame re-sync. It means the timecode in the clips being recorded on all decks will have the same events happening at the same timecode. It makes multi-cam editing possible.

Of course the downside is you are adding some frames to the input, or removing some frames from the input before recording. This is why it's best to leave this feature turned off and to only use it when you absolutely cannot do anything to connect a reference to an ISO source because it's a computer or consumer device.

However, there is one situation where you can turn the input re-sync feature on and use it. When input re-sync is turned on, the HyperDeck video output will remain reference locked even when the deck is recording. What this means is you can connect the SDI output of the HyperDeck to a camera to lock the camera to the reference via the program return feed. A good example is the Blackmagic Studio Camera 4K Pro and it can set its reference to the external video. Then the camera feed will be reference locked from the HyperDeck and the HyperDeck input re-sync won't have to add or remove frames because the camera is not running fast or slow.

The input re-sync only does something if the video input is not locked to the same reference as the HyperDeck. But in this case, the HyperDeck output is the reference source to the camera and the HyperDeck is locked to its video reference input. If you have multiple HyperDecks all locked together by looping the reference connections, then all cameras and HyperDecks will be locked as a single group. Then if one of the HyperDecks in a group has a non-sync source, such as a computer, then that one input will be resynchronized, but the other sources won't need anything.

The re-sync is automatic so you can just connect sources and it will work. The input re-sync feature can be extremely powerful, however, it's important to know when it's going to do something and what it will do. Try some experiments with multiple HyperDecks and multi-cam editing software to see how it works! It's a fantastic way to do program production that's very fast.

Monitor Menu

Monitor Clean Feed Off 3D LUT Off

The monitor menu is included on HyperDeck Studio models with the monitor out connection on the rear panel.

Clean Feed

Turning clean feed to on will remove the status text from appearing on displays connected to the monitor out on the rear of HyperDeck Studio. For more information on the monitor out display, including what information is displayed, refer to the monitor out section later in this manual.

3D LUT

Display LUTs can be especially helpful when using the HyperDeck Studio as a field recorder. They work by telling the unit what color and luminance output to display. This can be useful for when you are using the 'film' dynamic range on your camera which has an intentionally undersaturated, 'flat' appearance. By applying a display LUT, you can get an idea of what your video will look like after it has been graded.

Display LUTs are selected via Blackmagic HyperDeck Setup can be applied on the SDI monitor out.

To turn a 3D LUT on or off:

1 Press the 'menu' button and using the search dial, scroll to the 'monitor' menu.
2 Press the 'set' button.
3 Using the search dial, scroll down until '3D LUT' is highlighted blue.
4 Toggle the set button to turn the LUT on or off.

For more information on selecting a LUT, refer to the Blackmagic HyperDeck Setup section later in this manual.

TIP For more information on the monitor out view, see the 'monitor out' section later in the manual.

Audio Menu

Audio
Recorded Audio ChannelsPCM 2
Monitor Channels1 and 2
Audio MetersVU (-20dBFS)
Headphone Level50%
Speaker Level50%

Recorded Audio Channels

HyperDeck Studio can record up to 16 channels of PCM audio at a time. To select the number of channels to record, expand the recorded audio channels list and select 2, 4, 8 or 16 channels. If the codec is set to H.264 or H.265, you can also select 2 channels of AAC audio so you can upload recordings directly to YouTube. This setting also selects the number of channels to appear via the monitor out connection.

Monitor Channels

When recording more than two channels, you can select which channels you want to see on the front panel LCD. This can be done via the monitor channels option. For HyperDeck Studio models featuring a front panel speaker, this setting also sets which channels of audio will play back through the speaker and headphones connection.

Audio Meters

The built in LCD displays audio meters for embedded audio channels. You can select to display PPM or VU Meters. To change your meter type, expand the menu setting and select your preferred audio meter display from the options.

Audio Meters
VU (-18dBFS)
VU (-20dBFS)
PPM (-18dBFS)
PPM (-20dBFS)

Headphone Level

For models featuring a headphone port on the front panel you can adjust the headphone volume via the headphone level setting.

Speaker Level

Adjust the speaker volume by turning the search dial. The default level is 50%.

TIP Headphone and speaker volume can also be adjusted directly via the front panel. Press and hold the speaker button and turn the search dial to increase or decrease the playback volume. The volume level will appear in the upper center of the front panel.

Storage Menu

Storage
Media 1SD 1: SanDisk 256
Media 2SD 2: SanDisk 256
Media 3USB: Drive A
USB SpillOn
Format Media

Format Media

SD Cards, SSDs and media connected via the rear ext disk connection can be formatted directly on the unit or via a Mac or Windows computer.

Preparing Media on HyperDeck Studio:

1 Using the search dial and set button, select format media.
2 Select the media to format from the list and press set.
3 Choose the format and press set.
4 A confirmation window will appear detailing which card is to be formatted and the selected format option, select format.
5 A formatting window will appear once completed, select Ok.

HFS+, is also known as Mac OS X Extended, and is the recommended format as it supports 'journaling'. Data on journaled media is more likely to be recovered in the rare event that your storage media becomes corrupted. HFS+ is natively supported by Mac. exFAT is supported natively by Mac and Windows without needing any additional software but does not support journaling.

To format media on a Mac or Windows computer, refer to the formatting media section in this manual.

Setup Menu

Setup
NameHyperDeck Studio 4K Pro
LanguageEnglish
Date16 Jul 2021
Time15:12
Software8.0.1
Front PanelLight Appearance
CameraA
Default Standard1080p30

Name

When more than one HyperDeck Studio is on the network, you may wish to give them discrete names. This can be done via Blackmagic HyperDeck Setup or Blackmagic HyperDeck Ethernet Protocol using a terminal application.

Language

HyperDeck Studio supports 13 languages, including English, Chinese, Japanese, Korean, Spanish, German, French, Russian, Italian, Portuguese, Turkish, Ukrainian and Polish.

To select the language:

1 Once the setup menu is highlighted, press set.
2 Scroll the search dial down to select language and press set.
3 Using the search dial to select the language and press set. Once selected you will automatically return to the setup menu.

Date

To adjust the date, select the date field and press set. Using the search dial you can select the day, month and year. This will populate the timestamp file suffix.

Time

To adjust the time, select time and press set. Use the search dial to adjust the hours and minutes. HyperDeck Studio clock is a 24 hour clock.

Software

Displays the current software version.

Front Panel

Set your HyperDeck's front panel to 'light' mode for a brightly illuminated LCD. Use 'dark' mode for dimly lit environments where a bright LCD may be distracting, for example multiple HyperDeck units mounted in a rack in a production facility.

Setup Time 15:12 Software 8.0 Front Panel Dark Appearance Camera A

Setup Time 15:12 Software 8.0 Front Panel Light Appearance Camera A

Camera

This setting is helpful when using HyperDeck to record ISO files from multiple cameras and then editing them on a multicamera timeline in DaVinci Resolve.

Each individual camera identification letter will appear in the files' metadata, allowing DaVinci Resolve to identify each angle easily when using the sync bin feature.

Camera Q

Assign you camera using characters A-Z or 1-9

Default Standard

Sometimes the HyperDeck Studio does not know what video standard you want to use. This setting will let the HyperDeck know the video standard you want to use most of the time.

A good example is if you have turn on a HyperDeck Studio, it has no video input connected and you insert a disk with files on it with 2 different video standards. Which video standard should the HyperDeck play? The default video standard will give it an indication which video standard you prefer and it will switch to that format and play those files.

The default video standard is also useful when you first turn on a HyperDeck, and it has no video input and no media disk inserted. In this case, the HyperDeck Studio does not know which video standard to use for the monitoring output. The default video standard will guide it on what to do.

However, the default video standard is only a guide. It won't override anything. So if you had a media disk with only 1 type of video file on it and you press play, the HyperDeck Studio will switch to that video standard and play. It will ignore the default video standard because it's obvious you just want to play the files on the disk.

It's a similar situation with recording. If you press record, the HyperDeck will just record whatever video standard is connected to the video input. Plus, once you have done the recording, the HyperDeck Studio will playback the same video standard files on the disk, even if there are other files on the disk that match the default video standard. It's assumed you want to playback the same video standard as you just recorded. If you unplug the media disk and plug it back in again, only then will the default video standard be used to choose which type of files to play back.

The default video standard is only a guide to help the HyperDeck Studio make decisions about what to do when it's not sure. It's not an override that forces the deck to behave in any specific way.

Default Standard
SD
525i59.94 NTSC
625i50 PAL
HD
720p50
720p59.94
720p60
1080i50
1080i59.94
1080i60

Network Settings

Network
ProtocolStatic IP
IP Address192.168.1.10
Subnet Mask255.255.255.0
Gateway192.168.1.1

Protocol

Blackmagic HyperDeck is shipped set to DHCP, so once connected, your network server will automatically assign an IP address and no other network settings will need to be adjusted. If you need to set a manual address, you can connect via a static IP.

With 'protocol' selected press the flashing 'set' button to access the menu, scroll to 'Static IP' and press 'set'.

IP Address, Subnet Mask and Gateway

Once Static IP is selected, you can enter your network details manually.

To change the IP address:

1 Use the search dial to highlight 'IP address' and press the flashing 'set' button on your HyperDeck's front panel.
2 Using the search dial, adjust the IP address, rotate the search dial to adjust your IP address, pressing 'set' to confirm before adjusting the next set of values.
3 Press 'set' to confirm the change and move to the next value.

When you have finished entering your IP address, you can repeat these steps to adjust the Subnet Mask and Gateway. Once finished, press the flashing 'menu' button to exit and return to the home screen.

Timecode Settings

Timecode
InputVideo Input
Drop FrameDefault
Preset00:00:00:00
OutputTimeline

Input

There are five timecode input options available when recording.

Video InputSelecting video input will take the embedded timecode from SDI and HDMI sources with SMPTE RP 188 metadata. This will maintain sync between your SDI or HDMI source and the file recorded on the HyperDeck Studio.
External Clickthis option when using the timecode in connection on the rear panel.
InternalUse this option to record time of day timecode via the built in timecode generator.
Last Clip RegenBy selecting ‘last clip regen’ for your timecode input, each file will start one frame after the last frame of the previous clip. For example, if your first clip ends on 10:28:30:10, the next clip timecode will start at 10:28:30:11.
PresetIf you want to set a timecode manually, select the preset option. Recorded clips will start at the timecode set via the preset later in the manual.

Drop Frame

For NTSC sources at frame rates of 29.97 or 59.94, you can select 'drop frame' or 'non-drop frame' timecode. If the source is unknown, select 'default'. This will maintain the standard of the input, or default to drop frame if there is no valid timecode.

Preset

You can set your time code manually by pressing the set button and entering the start time code using the search dial and set button. Make sure the 'preset' option is selected under the input menu.

Output

Select your timecode options for your outputs.

Timeline To output a continuous timecode for all clips recorded on a card or drive, select timeline.
Clip Selecting the clip option will output the time code of each individual clip.

SDI Output

SDI Output
3G-SDI OutputLevel A

3G-SDI Output

Some broadcast equipment can only receive level A or level B 3G-SDI video.

To maintain compatibility with other broadcast equipment, select Level A for direct stream 3G-SDI or Level B for dual stream multiplexed 3G-SDI.

Genlock Settings

Genlock
Reference SourceAuto
Reference Timing Lines0
Reference Timing Pixels0

Reference Source

Select your reference source from the following three options.

Auto‘Auto’ mode will default to external if there is a signal connected to the ‘ref in’ connection on the rear panel. If there is no reference connected, it will default to the input SDI or HDMI source.
InputSelect ‘input’ if your SDI or HDMI source has embedded reference that you want to sync to. An example of this would be where your analog deck may have a genlock source directly connected.
External Select ‘external’ if you have an external reference device, for example the Blackmagic Sync Generator, connected via the ‘ref in’ connector on the rear panel.

External Reference Indicator - A 'ref' indicator will be displayed on the built in LCD when your HyperDeck Studio is successfully locked to an external reference source.

Reference Timing

Reference timing can be adjusted if you are archiving from analog tape decks and you need frame synchronization. The reference adjustment is in samples so you can get an extremely accurate timing adjustment down to the sample level.

To adjust the timing:

In the setup menu, use the search dial to highlight 'reference timing lines' and press the flashing 'set' button.
2 Adjust the timeline lines value by turning the dial clockwise to increase or counter clockwise to decrease.
3 To confirm your selection, press the flashing 'set' button.
4 To adjust the pixels, press the flashing 'menu' button to return to the setup menu and repeat the steps for reference timing pixels.

File Settings

File Settings Timestamp File Suffix Off

Timestamp File Suffix

The timestamp added to the filename is set to 'off' by default. If you would like the date and time recorded in your filename, press the set button and use the search dial to turn the 'timestamp file suffix' option to on.

HyperDeck_2105061438_0001
HyperDeck_2105061438_0001 Filename
HyperDeck_2105061438_0001Year
HyperDeck_2105061438_0001Month
HyperDeck_2105061438_0001Day
HyperDeck_2105061438_0001Hour
HyperDeck_2105061438_0001Minute
HyperDeck_2105061438_0001 Clip Number

HDR Format Override

HDR Format Override Playback Auto Record Auto

HyperDeck Studio 4K Pro will automatically detect embedded HDR metadata in a 4K video signal or file and display it via the HDMI output. If the signal or file is tagged incorrectly, or your display is not HDR compatible, you can override the HDR format.

To do this, set the 'HDR format override' setting to an SDR option, such as Rec.2020 SDR.

The available HDR playback and record settings are:

Auto

Auto is the default setting that will let HyperDeck automatically select the output format that conforms to the clip's HDR metadata.

Rec.709

For high definition video using standard dynamic range.

Rec.2020 SDR

This setting is used for Ultra HD video using standard dynamic range.

HLG

HLG stands for 'hybrid log gamma'. This format allows HDR video to be played back on HDR capable TVs and monitors, including those that support up to Rec.2020 SDR.

The following settings support the Rec.2020 color gamut, plus PQ, or perceptual quantizer published as SMPTE ST2084. PQ is the function of wide gamut HDR that allows for the display of brighter images. Luminance values in candelas per meter squared, for example 1000 cd/m ^2 indicate the maximum luminance per square meter supported by the corresponding format.

ST2084 (300)

300 cd/m ^2 luminance.

ST2084 (500)

500 cd/m² luminance.

ST2084 (800)

800 cd/m ^2 luminance.

ST2084 (1000)

1000 cd/m² luminance.

ST2084 (2000)

2000 cd/m² luminance.

ST2084 (4000)

4000 cd/m² luminance.

Remote

Remote Remote Off

Remote

Select 'remote' to enable remote control via RS-422, this will let the HyperDeck be controlled remotely by another device, for example, HyperDeck Extreme Control. When selected, the dedicated remote button on some HyperDeck models will illuminate to indicate it is active. Deselect remote to control the unit locally.

Deck Control

When remote is enabled, you can mirror the transport controls from one HyperDeck to multiple additional HyperDeck units. Daisy chain your HyperDecks by connecting the remote out connector from the master HyperDeck to the remote in connector on a second unit, then continue the RS-422 chain for additional units. When all additional units have their remote setting enabled, transport controls on the master unit will also control the additional units.

For example, when you press the 'record' button on the master HyperDeck, all the additional HyperDecks connected will begin recording simultaneously.

It's worth noting that while you cannot use HyperDeck Studio HD Mini as a controller, it can be controlled by a HyperDeck Pro or Plus model.

Reset

Reset Factory Reset

Factory Reset

Highlight 'Factory Reset' in the setup menu to restore your HyperDeck to factory settings.

Once you press 'set', you will be prompted to confirm your selection.

Rear Panel

HyperDeck Studio HD Mini includes a power connector with a locking ring to prevent accidental disconnection HyperDeck Studio HD Mini and Plus models feature BNC connectors for timecode in and out 2 5 6 8 9 41 3 7

1 Power

All HyperDecks feature an IEC power input for AC mains power. HyperDeck Studio 4K Pro features two for redundancy. The DC input allows for external 12V battery power, which can also be used for redundancy. Ensure any DC power source is compatible with the input voltage and current rating marked below the DC in connector.

2 Ethernet

The Ethernet port lets you connect to your network for fast ftp transfers or to remotely control the unit using the HyperDeck Ethernet Protocol. File transfers speeds are supported via 1GbE on HD models and 10GbE on HyperDeck Studio 4K Pro. For more details on transferring files via an FTP client, see the 'transferring files over a network' section later in this manual.

When connected to the same network shared with an ATEM switcher, you can also control your HyperDeck using the ATEM switcher or an ATEM hardware panel.

3 Remote

Some HyperDeck Studio models feature two RS-422 DE-9 connectors for remote in and out. HyperDeck Studio HD Mini supports remote in only.

4 Ext Disk

Connect a flash disk to the USB-C connector so you can record to external disks at up to 5Gb/s on HyperDeck Studio HD models. HyperDeck Studio 4K Pro models feature a USB 3.1 gen 2 connection for transfer speeds up to 10Gb/s. You can also connect to multi port USB-C hubs or Blackmagic MultiDock 10G to connect one or multiple SSDs.

When your HyperDeck is connected to your computer via USB, you can use the HyperDeck as your webcam source in software including Open Broadcaster and Skype. For more information, see 'Setting up Open Broadcaster' later in this manual.

5 Monitor Out

The 3G-SDI monitor out connection provides a downscaled output with overlays so that you can monitor on an external display. The overlays include drive icons, audio meters and a time counter display as well as a display LUT. For more information on the Monitor SDI settings, including how to output a clean signal, see the 'settings' section earlier in this manual.

6 Ref

All HyperDeck models have their own built in sync generator that generates stabilized black burst and tri-sync video reference signals. This means you can connect your HyperDeck's reference output to other video equipment's reference input and lock them to a master reference signal generated by your HyperDeck.

You can also connect a reference signal to the reference input and sync your HyperDeck to an external master sync source.

For more information on selecting a reference source, including when looping multiple HyperDeck disk recorders together, see 'setup' settings earlier in this manual.

7 Timecode

All HyperDecks also have their own time of day timecode generator. In a similar fashion to reference, you can loop the timecode signal from a master HyperDeck to other HyperDecks or video equipment so that each recording shares the same timecode.

Depending on the HyperDeck model you are using, the timecode connectors will be either BNC or XLR. For more information on how to select your timecode options, see the 'settings' section earlier in this manual.

8 HDMI

Connect the HDMI output to HDMI televisions and monitors.

HyperDeck will auto detect SDR and HDR video standards when the signal is flagged with the correct metadata. You can also override the HDR flag using the settings menu. For more information, refer to the 'settings' section earlier in this manual.

9 SDI

HyperDeck Studio HD Mini models feature a single 3G SDI for signals up to 1080p60. HyperDeck Studio HD Plus and HyperDeck Studio HD Pro models features 6G-SDI allowing for signals from SD up to 2160p30. HyperDeck Studio 4K Pro features 12G-SDI inputs and outputs allowing for resolutions up to 2160p60.

HyperDecks with two SDI outputs can be used to play back ProRes 4444 files for simultaneous fill and key when connected to ATEM switchers.

Using the Monitor Output

The monitor output is a fast way to visually check your recording or playback video, with overlays displaying important status information such as the codec being used, the video and signal format, frame rate, timecode, file name, transport control status, storage media status, and audio levels.

CODE HL244 SDI FORMAT 1060p24 00:15:20:12 SOURCE HDMI NAME HyperDeck Studio HD Plus STATUS PLAY SD 1 26:14 SD 2 30:12 USB 3 1:03:16

Below is a description of the information displayed.

Codec

Displays the codec selected via the LCD menu.

Format

Displays the current clip's resolution and frame rate when in playback mode. If you are in record mode, it will display the resolution and frame rate of the video connected to the currently selected source.

Timecode

Displays the timecode present in your video clip during playback, or currently being recorded via the video or timecode inputs. You can also select between displaying clip timecode or the time counter for the timeline.

Source

Displays the currently selected SDI or HDMI source. If 'no signal' appears, it means a valid signal is not detected.

Name

Shows the name of your HyperDeck disk recorder. For information on how to change the name, see 'Blackmagic HyperDeck Setup' later in this manual.

Status

As you play back or record a clip, this indicator will display the transport control status and controls currently being used. These include:

STOPHyperDeck is in standby mode. Indicates playback is set to 'loop'
LOOPall recorded clips sharing the currently selected video format.
Blackmagic Design HyperDeck Studio 4K Pro - Status - 1Video is being played. Indicates playback is set to loopa single clip.
Blackmagic Design HyperDeck Studio 4K Pro - Status - 2Video is being recorded.The indicator will illuminate red during recording.SHUTTLEIndicates shuttle mode is enabled, but in standby.
Blackmagic Design HyperDeck Studio 4K Pro - Status - 3Displayed during fast forward or rewind. The numbers indicate the speed.JOGHyperDeck is in jog mode.
Blackmagic Design HyperDeck Studio 4K Pro - Status - 4SCROLLHyperDeck is in scroll mode.

Storage Media Status

These three indicators display the name and status of the SD card, SSDs and active USB drive and vary slightly depending on the HyperDeck model.

Blackmagic Design HyperDeck Studio 4K Pro - Storage Media Status - 1Studio HD PlusSD 126:14SD 230:12USB $1:03:16
SD Card slot 1 SD Card slot 2 Active external disk
Blackmagic Design HyperDeck Studio 4K Pro - Storage Media Status - 2 Blackmagic Design HyperDeck Studio 4K Pro - Storage Media Status - 3 modelsSSD 126:14SD 130:12USB 31:03:16
Current SD or SSD slot in useNext SD or SSD slot in orderActive external disk

On all HyperDeck models, the third indicator displays the USB drive. If you are using a USB hub, or a dock such as Blackmagic MultiDock 10G, the active drive will be displayed.

Disk or Drive Indicator

The text above the progress bar indicates the SD card slot or SSD slot. If you are recording, 'current' will appear to the left of the drive so you can easily identify which disk is recording. 'Next' will appear above the progress bar to indicate the next disk or drive to be recorded to.

SSD 1 Current 26:14 SD 1 Next 30:12 USB 3 1:03:16

Media Bar

The media bar icon will be either blue, white or red depending on its current status and will display the used space on the card.

Blackmagic Design HyperDeck Studio 4K Pro - Media Bar - 1The blue drive icon indicates the active drive. This is the drive that will be used for playback and recording.
Blackmagic Design HyperDeck Studio 4K Pro - Media Bar - 2A white drive icon indicates there is media present, but not active. A solid white icon indicates the media is full.
Blackmagic Design HyperDeck Studio 4K Pro - Media Bar - 3The bar will illuminate red during recording.

Text underneath the media bar will display either the record time remaining or the status of the slot.

Time remaining

When your SD card or SSD drive has space remaining, the duration available will be displayed in hours:minutes:seconds based on the current source format and your chosen codec and quality settings. If there is less than an hour left, minutes:seconds remaining will be displayed.

Blackmagic Design HyperDeck Studio 4K Pro - Time remaining - 1

Slot status

'No card' and 'no drive' will display if there is no media connected to that media slot.

Once an SD card, SSD or USB drive is full, the icon will display 'card full' or 'drive full' so you know it's time to swap out the storage media. If you have another SD card or SSD inserted, the recording will automatically spill over and start recording onto it. If you have an external disk connected, the recording will spill over once all the SD cards and SSDs are full.

SD 1 Card Full No Card USB 3 Drive Full

A locked drive will be shown with 'locked' under the progress bar.

Blackmagic Design HyperDeck Studio 4K Pro - Slot status - 2

Audio Meters

On screen audio meters will display up to 16 channels of audio, depending on how many channels you wish to record. These can be set to either PPM or VU meters via the audio tab of the LCD menu.

1 2 -50 -40 -30 -18 -15 -10 -5 0

Blackmagic Design HyperDeck Studio 4K Pro - Audio Meters - 2

bar | Category | Value | |---|---| | 1 | -30 | | 2 | -30 | | 3 | -30 | | 4 | -30 |

-50 -40 -30 -18 -16 -14 -12 -10 -8 -6 -4 -2 0

-50 -49 -30 -18 -15 -10 -5 0

To select your number of recorded audio channels, or to change to a different audio meter, use the audio tab of the LCD menu. For more information, refer to the 'settings' section earlier in this manual.

Storage Media

SD Card

For high quality Ultra HD recording we recommend high speed UHS-II SD cards. These cards need to be capable of write speeds above 220MB/s for recording up to Ultra HD 2160p60. However, if you are recording at a lower bit rate with higher compression you might be able to use slower cards. Generally, the faster the cards the better.

It's worth regularly checking the latest version of this manual for more up to date information and can always be downloaded from the Blackmagic Design website at www.blackmagicdesign.com/support

What SD cards should I use with HyperDeck Studio 4K Pro?

The following SD Cards are recommended for recording 2160p up to 60 fps

Brand Model Capacity
Angelbird AV Pro MK2 V90SDXC 128GB
Angelbird AV Pro MK2 V90SDXC 256GB
ProGrade Digital SDXC UHS-IIV90 300R 128GB
ProGrade Digital SDXC UHS-IIV90 300R 256GB
Wise SD2-128U3SDXC UHS-II 128GB

What SD cards should I use with HyperDeck Studio HD Pro?

The following SD Cards are recommended for recording 2160p up to 30 fps

Brand Model Capacity
Angelbird AV Pro MK2 V90SDXC 64GB
Angelbird AV Pro MK2 V90SDXC 128GB
Angelbird AV Pro MK2 V90SDXC 256GB
ProGrade Digital SDXC UHS-II V90300R 64GB
ProGrade Digital SDXC UHS-II V90300R 128GB
ProGrade Digital SDXC UHS-II V90300R 256GB
Wise SD2-64U3 SDXC UHS-II64GB
Wise SD2-128U3 SDXC UHS-II128GB

What SD cards should I use with HyperDeck Studio HD Plus?

The following SD Cards are recommended for recording 2160p up to 30 fps

Brand Model Capacity
Angelbird AV Pro MK2 V90SDXC 64GB
Angelbird AV Pro MK2 V90SDXC 128GB
Angelbird AV Pro MK2 V90SDXC 256GB
ProGrade Digital SDXC UHS-II V90 300R 64GB
ProGrade Digital SDXC UHS-II V90 300R 128GB
ProGrade Digital SDXC UHS-II V90 300R 256GB
Wise SD2-64U3 SDXC UHS-II 64GB
Wise SD2-128U3 SDXC UHS-II 128GB

What SD cards should I use with HyperDeck Studio HD Mini?

The following SD Cards are recommended for recording 1080p ProRes 422 HQ up to 60 fps

Brand Model Capacity
Angelbird AV Pro MK2 V90SDXC 64GB
Angelbird AV Pro MK2 V90SDXC 128GB
Angelbird AV Pro MK2 V90SDXC 256GB
ProGrade Digital SDXC UHS-II V90300R 64GB
ProGrade Digital SDXC UHS-II V90300R 128GB
ProGrade Digital SDXC UHS-II V90300R 256GB
Wise SD2-64U3 SDXC UHS-II64GB
Wise SD2-128U3 SDXC UHS-II128GB

SSD

When working with high data rate video it's important to carefully check the SSD you would like to use. This is because some SSDs can have up to 50% lower write speed than the manufacturer's claimed speed, so even though the disk specifications claim an SSD is fast enough to handle video, in reality the disk is not fast enough for real time video recording.

Hidden data compression mostly affects recording and often these disks can still be used for real time playback.

In our testing, we have found larger newer models of SSD and larger capacity SSDs are generally faster. SSDs recommended for use include:

What SSDs should I use with HyperDeck Studio 4K Pro?

The following USB-C drives are recommended for recording 2160p up to 60 fps

Brand Model Capacity
Samsung 860 PRO 512GB
Samsung 860 PRO 1TB
Samsung 870 EVO (MZ-77E250BW) 250GB
Samsung 870 EVO (MZ-77E500BW) 500GB
Samsung 870 EVO (MZ-77E1T0BW) 1TB
Samsung 870 EVO (MZ-77E2T0BW) 2TB

What SSDs should I use with HyperDeck Studio HD Pro?

The following USB-C drives are recommended for recording 2160p up to 30 fps

Brand Model Capacity
Samsung 860 PRO 512GB
Samsung 860 PRO 1TB
Samsung 870 EVO (MZ-77E250BW) 250GB
Samsung 870 EVO (MZ-77E500BW) 500GB
Samsung 870 EVO (MZ-77E1T0BW) 1TB
Samsung 870 EVO (MZ-77E2T0BW) 2TB

EXT Disk

All HyperDeck models can record directly to USB-C flash disks. These fast, high capacity drives allow you to record video for long periods. You can then connect the flash disk to your computer and edit directly from them!

For even higher storage capacities, you can connect a USB-C dock or external hard drive. To connect your Blackmagic MultiDock 10G or USB-C flash disk, connect a cable from your USB-C connected device to the 'ext disk' port on the rear panel of your HyperDeck.

What USB-C drives should I use with HyperDeck Studio 4K Pro?

The following USB-C drives are recommended for recording 2160p up to 60 fps

Brand Model Capacity
Angelbird SSD2GO PKT MK2 512GB
Angelbird SSD2GO PKT MK2 2TB
DelKinDevices Juggler 1TB
DelKinDevices Juggler 2TB
LaCie Rugged SSD STHR2000800 2TB
LaCie Rugged SSD Pro STHZ1000800 1TB
Wise PTS-512 Portable SSD 512GB
Wise PTS-1024 Portable SSD 1TB

What USB-C drives should I use with HyperDeck Studio HD Pro?

The following USB-C drives are recommended for recording 2160p up to 30 fps

Brand Model Capacity
Angelbird SSD2GO PKT MK2 512GB
Angelbird SSD2GO PKT MK2 2TB
DelKinDevices Juggler 1TB
DelKinDevices Juggler 2TB
LaCie Rugged SSD STHR2000800 2TB
LaCie Rugged SSD Pro STHZ1000800 1TB
Wise PTS-512 Portable SSD 512GB
Wise PTS-1024 Portable SSD 1TB

What USB-C drives should I use with HyperDeck Studio HD Plus?

The following USB-C drives are recommended for recording 2160p up to 30 fps

Brand Model Capacity
Angelbird SSD2GO PKT MK2 512GB
Angelbird SSD2GO PKT MK2 2TB
DelKinDevices Juggler 1TB
DelKinDevices Juggler 2TB
LaCie Rugged SSD STHR2000800 2TB
LaCie Rugged SSD Pro STHZ1000800 1TB
Wise PTS-512 Portable SSD 512GB
Wise PTS-1024 Portable SSD 1TB

What USB-C drives should I use with HyperDeck Studio HD Mini?

The following USB-C drives are recommended for recording 1080p ProRes 422 HQ up to 60 fps

Brand Model Capacity
Angelbird SSD2GO PKT MK2 512GB
Angelbird SSD2GO PKT MK2 2TB
DelKinDevices Juggler 1TB
DelKinDevices Juggler 2TB
Wise PTS-512 Portable SSD 512GB
Wise PTS-1024 Portable SSD 1TB

Formatting Media

Preparing Media on a Computer

Formatting Media on a Mac Computer

The Disk Utility application included with Mac can format a drive in the HFS+ or exFAT formats.

Make sure you back up anything important from your disk as you will lose everything on it when it is formatted.

1 Connect an SSD to your computer with an external dock or cable adapter and dismiss any message offering to use your SSD for Time Machine backups. For CFast cards, connect it to your computer via an external card reader.
2 Go to applications/utilities and launch Disk Utility.
3 Click on the disk icon of your SSD or CFast card and then click the erase tab.
4 Set the format to Mac OS Extended (Journaled) or exFAT.
5 Type a name for the new volume and then click erase. Your media will quickly be formatted and made ready for use with HyperDeck.

Disk Utility View Volume First Ad Periton Drake Remove Discount Internal Macintosh HD Macintosh HD — Data External Samsung SSD Disk Images Blackmagic DeVin... Erase "Samsung SSD"? Erasing "Samsung SSD" will permanently erase all data stored on it. You can't undo this action. Name: Drive_01 Format: Mac OS Extended (Journeled) Cancel Erase 500.11 GB Mount Point: /Volumes/Samsung SSD Type: USB External Physical Volume Capacity: 500.11 GB Owners: Disabled Available: 499.66 GB (Zero KB purgeable) Connection: USB Used: 4473 MB Device: disclet

Formatting Media on a Windows computer

The format dialog box can format a drive in the exFAT format on a Windows PC. Make sure you back up anything important from your SSD or SD card as you will lose everything on it when it is formatted.

1 Connect an SSD to your computer with an external dock or cable adapter. For CFast cards, connect it to your computer via an external CFast card reader.
2 Open the start menu or start screen and choose computer. Right-click on your SSD or CFast card.
3 From the contextual menu, choose format.
4 Set the file system to exFAT and the allocation unit size to 128 kilobytes.
5 Type a volume label, select quick format and click Start.
6 Your media will quickly be formatted and made ready for use with HyperDeck.

Format DRIVE_01 (Dr) Capacity: 119 GB File system exPAT Allocation unit size 128 kilobytes Restore device defaults Volume label DRIVE_01 Format options ✓ Quick Format Start Close

Using your HyperDeck as a Webcam

When connected to a computer via USB, your HyperDeck disk recorder will be detected as a webcam. This means you can broadcast the playback or recording from your HyperDeck using streaming software such as Open Broadcaster.

Setting the Webcam Source

In most cases, your streaming software will automatically set HyperDeck as the webcam, so when you launch your streaming software you will see the picture from your HyperDeck Studio straight away. If your software doesn't select it automatically, simply set the software to use HyperDeck as the webcam and microphone.

Below is an example of how to set the webcam settings on Skype.

1 In Skype's menu bar, open the 'audio and video settings'.
2 Click on the 'Camera' menu and select your HyperDeck from the list. You will see the video from HyperDeck appear in the preview window.
3 Now go to the 'microphone' menu and select your HyperDeck as the audio source.

With your Skype settings set correctly, perhaps try out a Skype call with a friend as a quick test to check your webcam setup is working.

That's all you need to do, your HyperDeck Studio is now ready to broadcast your video to the world live!

Setting up Open Broadcaster

Open Broadcaster is an open source application that works as a streaming platform between your HyperDeck Studio and your favorite streaming software like YouTube, Twitch, Facebook Live and others. Broadcaster compresses your video to a bit rate that is easily managed by your streaming app.

Below is a demonstration of how to set up Open Broadcaster to stream the webcam output from your HyperDeck Studio using YouTube Live as the streaming service.

Blackmagic Design HyperDeck Studio 4K Pro - Setting up Open Broadcaster - 1

Stream setup help 1 Download and set up your streaming software from more than streaming software 2 Paste the stream key into your software in your streaming tool http://a.fina.youtube.com/5w2 3 In your streaming software, start sending as your video stream 4 Click There and then click "Go I now" to start streaming

YouTube will now generate a stream key that will direct Open Broadcaster to your YouTube account.

Click the 'copy' button next to the stream key. Copy the stream key that you will now paste into Open Broadcaster.

8 Settings Service: Microsoft Visual Studio General: Microsoft Visual Studio Browse the Web Page Browse the Web Page Browse the Web Page Browse the Web Page Browse the Web Page Browse the Web Page Browse the Web Page Browse the Web Page Browse the Web Page Browse the Web Page Browse the Web Page Browse the Web Page Browse the Web Page Browse the Web Page Browse the Web Page Browse the Web Page Browse the Web Page Browse the Web Page Browse the Web Page Browse the Web Page Browse the Web Paper Browse the Web Paper Browse the Web Paper Browse the Web Paper Browse the Web Paper Browse the Web Paper Browse the Web Paper Browse the Web Paper Browse the Web Paper Browse the Web Paper Browse the Web Paper Browse the Web Paper Browse the Web Paper Browse the Web Paper Browse the Web Paper Browse the Web Paper Browse the Web Paper Browse the Web Paper Browse the Web Paper Browse the Web Paper Browse the Web Panel Browse the Web Panel Browse the Web Panel Browse the Web Panel Browse the Web Panel Browse the Web Panel Browse the Web Panel Browse the Web Panel Browse the Web Panel Browse the Web Panel Browse the Web Panel Browse the Web Panel Browse the Web Panel Browse the Web Panel Browse the Web Panel Browse the Web Panel Browse the Web Panel Browse the Web Panel Browse the Web Panel Browse the Web Panel Browse the Web Series

Return to Open Broadcaster and open the preferences by clicking on 'OBS/preferences' in the menu bar. Select 'stream'. Now paste in the stream key you copied from YouTube and click 'OK'.

You will now see the video from your HyperDeck in the Open Broadcaster streaming preview window.

Scene Transitions Fade Duration 300 ms Start Streaming Start Recording Studio Mode Settings Exit REC: 00:00:00 CPU: 1.9%, 30.00 fps

To connect Open Broadcaster's broadcast link to YouTube, click 'start streaming' in the bottom right corner of the screen. This establishes the link to YouTube from Open Broadcaster and from here everything will now be set using YouTube Live.

10 Stream setup help 1 Download and set up your streaming software You more about streaming software 2 Paste the stream key into your software You may store next http://urine.nuibla.com/lin2 3 Is your streaming software, start sending us your video stream 4 Click 'Done' and then click 'Go Live' to start streaming COPY COPY © 00000000000000000000000000000000000000000000000000000000000000000000000000000000000

Go back to YouTube Live and you will see the webcam program output from your HyperDeck in the background. Click 'done'.

11 Demo People & Blogs 0 0 Exclusive Streamset STREAM SETTINGS ANALYSIS STREAM HEALTH Stream key Custom set user Auto-generated key Add: Additional settings Enable DVI 54" VIDEO Send to: None prop 2% rimp youtube now live? COPY COPY

With Open Broadcaster now communicating with YouTube Live, you are ready to begin your broadcast. Now it's time to perform your final checks and make sure everything is good.

12 GO LIVE Edit Live chat

If you are all set, you can now begin your broadcast by clicking 'go live'.

You are now broadcasting live on YouTube with Open Broadcaster.

NOTE Due to the nature of internet streaming there can often be a delay, so it's important to watch the stream on YouTube and confirm your program has finished before clicking 'end stream' to make sure you don't accidentally cut the end of your broadcast short.

Blackmagic HyperDeck Setup

Using HyperDeck Setup

Blackmagic HyperDeck Setup is used to change settings and update the internal software in your HyperDeck.

To use HyperDeck Setup:

1 Connect HyperDeck to your computer via USB or Ethernet.
2 Launch HyperDeck Setup. Your HyperDeck model will be named in the setup utility home page.
3 Click on the circular 'setup' icon or the image of your HyperDeck to open the setup page.

Setup Page

Blackmagic HyperDeck Studio 4K Pro HyperDeck Studio 4K Pro Setup LUTs Name: HyperDeck Studio 4K Pro Software: Version 8.0 Network Protocol: DHCP Static IP IP Address: 0.0.0.0 Subnet Mask: 255.255.0.0 Gateway: 0.0.0.0 Reset Factory Reset Cancel Save

If you have more than one HyperDeck Studio, you may wish to give each unit a discrete name to make them easy to identify. You can do this via the 'name' option.

Setup LUTS Name: HyperDeck Studio 4K Pro Software: Version 8.0

Network

Network Protocol: DHCP Static IP IP Address: 0.0.0.0 Subnet Mask: 255.255.0.0 Gateway: 0.0.0.0

Protocol

To use your HyperDeck Studio with ATEM switchers, or to control it remotely via HyperDeck Ethernet Protocol, the HyperDeck Studio needs be on the same network as your other equipment using DHCP or by manually adding a fixed IP address.

DHCPHyperDeck Studio disk recorders arrive set to DHCP by default. The dynamic host configuration protocol, or DHCP, is a service on network servers that automatically finds your HyperDeck Studio and assigns an IP address. The DHCP is a great service that makes it easy to connect equipment via Ethernet and ensure their IP addresses do not conflict with each other. Most computers and network switchers support DHCP.
Static IPWhen ‘static ip’ is selected, you can enter your network details manually. When setting IP addresses manually so all units can communicate, they must share the same subnet mask and gateway settings. In addition, the first three fields of numbers in the panel’s IP address also need to match. If there are other devices on the network that have the same identifying number in their IP address, there will be a conflict and the units won’t connect. If you encounter a conflict, simply change the identifying number in the unit’s IP address.

LUTs Page

HyperDeck models with monitor out connections on the rear panel can display the input video with 3D LUTs applied. 17 point, 33 point and 65 point .cube LUT files are supported.

This can be useful for when you are using the 'film' dynamic range on your camera which has an intentionally undersaturated, 'flat' appearance. By applying a display LUT, you can get a representation of what your video will look like after it has been graded.

The 3D LUT is only used on the monitor out display and not actually recorded into the video itself, so you don't need to worry that your recorded image will have the look permanently applied.

If you want to apply the same LUT to your image in DaVinci Resolve, you can simply import the exact same LUT .cube file used on your HyperDeck Studio into DaVinci Resolve and apply it to your grade.

Blackmagic HyperDeck Studio 4K Pro HyperDeck Studio 4K Pro Setup LUTs 3D LUTs On Off Import Delete Cancel Save

To view a LUT

1 First you need to select your display LUT. Click on the 'import' button.
2 From the file window, navigate to the LUT you wish to import and press 'open'.
3 Once your LUT is imported, toggle the '3D LUT' option to 'on' and press the 'save' button.

The selected display LUT will appear on the monitor out display. You can now turn the LUT on or off via the monitor settings in the LCD menu.

Updating the Internal Software

The setup utility lets you update your HyperDeck disk recorder's internal software in addition to configuring the streaming settings, network settings and streaming quality.

To update the internal software:

1 Download the newest Blackmagic HyperDeck Setup installer from www.blackmagicdesign.com/support.
2 Run the Blackmagic HyperDeck Setup installer on your computer and follow the onscreen instructions.
3 After installation is complete, connect your HyperDeck Studio to the computer via the USB or Ethernet connector on the rear panel.
4 Launch Blackmagic HyperDeck Setup and follow any onscreen prompt to update the internal software. If no prompt appears, the internal software is up to date and there is nothing further you need to do.

HyperDeck Setup BlackmagicStudio HyperDeck Studio 4K Pro Blackmagic HyperDeck Studio 4K Pro

Download the latest setup utility for your Blackmagic HyperDeck Studio from the Blackmagic Design support center at www.blackmagicdesign.com/support

Teranex Mini Rack Shelf

Teranex Mini Rack Shelf is a 1 RU shelf that lets you install Blackmagic HyperDeck Studio HD Mini and HyperDeck Studio HD Plus models into a broadcast rack or road case. Blackmagic HyperDeck Studio HD Mini is so small, you can install it next to other Blackmagic Design equipment that shares a similar form factor, such as Teranex Mini converters, Blackmagic MultiView 4 and Blackmagic Web Presenter. For example, installing a Blackmagic HyperDeck Studio HD Mini together with ATEM Television Studio HD gives you the ability to switch eight video inputs and record the program output on your HyperDeck Studio HD Mini. This modular design lets you build your own custom video solutions that are portable and easy to use!

Blackmagic Design HyperDeck Studio 4K Pro - Teranex Mini Rack Shelf - 1

natural_image Illustration of a server rack with ports and control panel (no text or symbols)

Teranex Mini Rack Shelf lets you rack mount your Blackmagic HyperDeck Studio HD Mini and HyperDeck Studio HD Plus with other Blackmagic Design equipment that shares the same form factor.

To install your Blackmagic HyperDeck into a Teranex Mini Rack Shelf, remove the unit's rubber feet, if installed, and fasten the unit to the base of the shelf using the supplied screws.

The Teranex Mini Rack Shelf ships with two original blank panels which you can use to cover gaps if you don't need to install additional Blackmagic Design equipment.

For more information check the Blackmagic Design website at www.blackmagicdesign.com

RS-422 Control

What is RS-422 Control?

The RS-422 standard is a serial deck control broadcast standard and has been used by broadcasters since the early 1980s and is found on many decks, linear editors, nonlinear editors and broadcast automation products. All current HyperDeck models support this standard so can be integrated into broadcast automation, remote control systems, editing systems and any kind of custom control you might like to design yourself.

HyperDeck Studio also supports file based commands from the Advanced Media Protocol via RS-422. This lets you control your HyperDeck with an external device using AMP commands such as adding clips to a playlist, determining the filename of the next clip, looping a single clip or timeline, or clearing a playlist.

Using an External RS-422 Controller

All current HyperDeck models feature an industry standard Sony™ compatible RS-422 deck control port, which has the correct pin connections for a direct connection to any remote controller with RS-422, for example HyperDeck Extreme Control.

You can use pre-manufactured 9 pin cables as long as each end of the cable is wired 'pin for pin' where the same pin numbers on each end of the cable are connected together. If you would like to make custom cables, please refer to the accompanying wiring diagram.

You can remotely control your HyperDeck from HyperDeck Extreme Control instead of locally pushing buttons.

1 Connect a video signal to your HyperDeck's video input.
2 Connect an RS-422 cable from your HyperDeck Extreme Control to your HyperDeck Studio.
3 Enable remote control by pressing the remote button on the front control panel, or via the LCD menu in HyperDeck Studio Mini, to allow remote deck control.

You can now remotely start and stop recording and playback of your HyperDeck as well as performing other common jog and shuttle functions. The full list of supported RS-422 commands is in the following section named 'supported RS-422 commands'.

54321 9876

Receive (-)Receive (+)Transmit (-)Transmit (+)Ground Pins
27831,4,6,9

RS-422 remote pin connections

Blackmagic Design HyperDeck Studio 4K Pro - Using an External RS-422 Controller - 2

natural_image Front view of a computer interface panel with buttons and ports (no text or symbols visible)

Make sure your HyperDeck has remote set to 'on' in the LCD menu, or via the front panel remote button, to enable RS-422 deck control

10-14V 3.5A ETHERNET DIT/DISK MONITOR OUT REMOTE IN REMOTE OUT REF OUT TIMECODE OUT HDMI OUT SDY OUT REF IN TIMECODE IN HDMI IN SDY IN SDY LOOP OUT

All HyperDeck models support remote control via the RS-422 port on the rear panel

Supported RS-422 Commands

Command Reply No Remote Notes
0 - System Control
0x00 0x11 DeviceTypeRequestNTSC: 0xF0E0PAL: 0xF1E024P: 0xF2E0Enabled
1 - Slave Response
0x200x00StopAcknowledgeDisabled
0x200x01PlayAcknowledgeDisabled
0x200x02RecordAcknowledgeDisabled
0x200x04StandbyOffAcknowledgeDisabled
0x200x05StandbyOnAcknowledgeDisabled
0x200x0FEjectAcknowledgeDisabled
0x200x10FastFwdAcknowledgeDisabled
0x210x11JogFwd1AcknowledgeDisabled
0x220x11JogFwd2AcknowledgeDisabledTreated as N=1;Same as JogFwd1
0x210x12VarFwd1AcknowledgeDisabledUses ShuttleFwd1
0x220x12VarFwd2AcknowledgeDisabledTreated as N=1;Same as VarFwd1
0x210x13ShuttleFwd1AcknowledgeDisabled
0x220x13ShuttleFwd2AcknowledgeDisabledTreated as N=1;Same as ShuttleFwd1
0x200x20RewindAcknowledgeDisabled
0x210x21JogRev1AcknowledgeDisabled
0x220x21JogRev2AcknowledgeDisabledTreated as N=1;Same as JogRev1
0x210x22VarRev1AcknowledgeDisabledUses ShuttleRev1

Command Reply No Remote Notes

0x22 0x22 VarRev2 Acknowledge DisabledTreated as N=1;Same as VarRev1
0x210x23ShuttleRev1AcknowledgeDisabled
0x220x23ShuttleRev2AcknowledgeDisabledTreated as N=1;Same as ShuttleRev1
0x200x30PrerollAcknowledgeDisabled
0x24 0x31 CueData Acknowledge Disabled
0x200x34SyncPlayAcknowledgeDisabled
0x200x40PreviewAcknowledgeDisabledStatus bits are set
0x200x41ReviewAcknowledgeDisabledStatus bits are set
0x200x43OutpointPreviewAcknowledgeDisabled
0x220x5CDMCSetFwdAcknowledgeDisabled
0x220x5DDMCSetRevAcknowledgeDisabled
0x200x60FullEEOffAcknowledgeDisabled
0x200x61FullEEOnAcknowledgeDisabled
0x200x63SelectEEOnAcknowledgeDisabled
4 - Preset/Select Control
0x400x10InEntryAcknowledgeDisabled
0x400x11OutEntryAcknowledgeDisabled
0x440x14InDataPresetAcknowledgeDisabled
0x440x15OutDataPresetAcknowledgeDisabled
0x400x18InShift+AcknowledgeDisabled
0x400x19InShift-AcknowledgeDisabled
0x400x1AOutShift+AcknowledgeDisabled
0x400x1BOutShift-AcknowledgeDisabled
0x400x20InResetAcknowledgeDisabled
0x400x21OutResetAcknowledgeDisabled
0x400x22AlnResetAcknowledgeDisabled
0x400x23AOutResetAcknowledgeDisabled
0x440x31PrerollPresetAcknowledgeDisabled
0x400x40AutoModeOffAcknowledgeDisabledignored, Status bit remembered
0x400x41AutoModeOnAcknowledgeDisabledignored, Status bit remembered
0x410x37InputCheckAcknowledgeDisabled

Command Reply No Remote Notes
6 - Sense Request

0x61 0x0A TimeCodeGenSense — —
0x61 0x0C CurrentTimeSense — —
0x60 0x10 InDataSense InData Enabled
0x600x11OutDataSenseOutDataEnabled
0x600x12AlnDataSenseAlnDataEnabled
0x600x13AOutDataSenseAOutDataEnabled
0x610x20StatusSenseStatusDataEnabled
0x600x2BRemainTimeSenseRemainTimeDataEnabled
0x600x2ESpeedSenseSpeedDataEnabled
0x600x31PrerollTimeSensePreRollTimeDataEnabled
0x600x36TimerModeSenseTimerModeDataEnabled
0x600x3ERecordInhibitSenseRecordInhibitStatusEnabled

7 - Sense Reply

0x780x00Timer1DataCurrent Time and 00:00:00:00
0x780x04LTCUserBitsTimeDataCurrent Time and 00:00:00:00
0x780x06VITCUserBitsTimeDataCurrent Time and 00:00:00:00
0x740x06VITCTimeDataCurrent Time
0x740x07UserBitsVITCTimeData00:00:00:00
0x740x08GenTCDATACurrent Time
0x780x08GenTCUBDataCurrent Time and 00:00:00:00
0x740x09GenUBData00:00:00:00
0x74 0x10 InData— —
0x740x11OutData
0x740x12AlnData
0x740x13AOutData
0x740x14CorrectedLTCTimeDataCurrent Time
0x700x20StatusDataPlease see “Status Bits” sheet: Limited to 9 bytes of status, silently truncated
0x760x2BRemainTimeData
0x710x2ESpeedData
0x740x31PrerollTimeData
0x710x36TimerModeDataReturns 0 (TimeCode)
0x720x3ERecordInhibitStatus

Command Reply No Remote Notes
A - Advanced Media Protocol

0xA10x01AutoSkipAcknowledgeDisabled8-bit signed number of clips to skip from current clip
0xAX0x15ListNextIDIDListingEnabledwhen x = 0 single clip request when x = 1, # clips can be specified in the send data
0x200x29ClearPlaylistAcknowledgeDisabled
0x410x42SetPlaybackLoopAcknowledgeDisabledBit 0 loop mode enable, 0=false 1=trueBit 1 is single clip/timeline0=single clip1=timeline
0x410x44SetStopModeAcknowledgeDisabled0 = Off1 = Freeze on last frame2 = Freeze on next clip3 = Show black
0x4f0x16AppendPresetAcknowledgeDisabled2 Bytes for the length N of the clip nameN Bytes for each character of the clip name4 Byte in point timecode (format is FFSSMMHH)4 Byte out point timecode (format is FFSSMMHH)

Blackmagic Extensions

0x820x02BMDSeekToTimelinePositionAcknowledgeDisabled16-bit little endian fractional position [0..65535]
0x810x03BMDSeekRelativeClipAcknowledgeDisabledOne-byte signed integer, which is the number of clips to skip (negative for backwards).

RS-422 Developer Information

bit 7bit 6bit 5bit 4bit 3bit 2bit 1bit 0
Byte 000Cassette out0000Local
Byte 1Standby0Stop0RewindForwardRecordPlay
Byte 2Servo Lock0ShuttleJogVarDirectionStill1
Byte 3Auto Mode000Aout SetAin SetOut SetIn Set
Byte 4Select EEFull EELoop Playback00000
Byte 500000000
Byte 60Lamp StillLamp FwdLamp Rev0000
Byte 700000000
Byte 800Near EOTEOT0000
Byte 900000000
Variables
Cassette OutSet if no SSD is present
LocalSet if Remote is disabled (local control)
StandbySet if a disk is available
DirectionClear if playback is forwarding, set if playback is reversing
StillSet if playback is paused, or if in input preview mode
Auto ModeSet if in Auto Mode
Select EE, Full EESet if in input preview mode
Lamp Still/Fwd/RevSet according to playback speed and direction
Near EOTSet if total space left on available SSDs is less than 3 minutes
EOTSet if total space left on available SSDs is less than 30 seconds
Others
Cue Complete (byte 2, bit 0)Always 1: Cue requests are always instantaneous
HyperDeck Serial RS-422 Protocol
ProtocolBased on Sony 9-pin protocol
InterfaceBaud rate 38.4 Kbps
1 start bit
8 data bits
1 stop bit
1 parity bit
Odd parity

Transferring Files over a Network

Your HyperDeck disk recorder supports file transfer via file transfer protocol, or ftp. This powerful feature lets you copy files directly from your computer to your HyperDeck via a network with the fast speeds a local network can provide. For example, you could be copying new files to a remote HyperDeck unit based at another location for digital signage.

Connecting to HyperDeck Studio

With your computer and HyperDeck Studio on the same network, all you'll need is an ftp client and your HyperDeck Studio's IP address.

1 Download and install an FTP client on the computer you want to connect your HyperDeck to. We recommend Cyberduck, FileZilla or Transmit but most FTP applications will work. Cyberduck and FileZilla are free downloads.

2 Connect your HyperDeck Studio to your network using an Ethernet cable and note its IP address. To access the IP address, press the 'menu' button and rotate the search dial to access the 'network' screen. You'll see your HyperDeck Studio's IP address at the bottom of this screen.

Network Protocol Static IP IP Address 192.168.1.10 Subnet Mask 255.255.255.0 Gateway 192.168.1.1

You can find your HyperDeck Studio's IP address in the smart panel's 'network' screen

3 Enter your HyperDeck's IP address into your TCP application's connection dialog. The naming and position of this box can vary between applications, but it is usually labeled 'server' or 'host.' If your FTP program includes an 'anonymous login' checkbox, make sure this is checked.

Cyberduck Open Connection Quick Connect Action Refresh Edit Disconnect FTP (File Transfer Protocol) Server: 192.168.24.250 Port: 21 URL: ftr://anonymous@192.168.24.250 Username: anonymous Password: Password ✓ Anonymous Login SSH Private Key: None Add to Keychain ? Cancel Connect

When connecting to HyperDeck Studio, you don't need to enter a username or password. Simply enter your disk recorder's IP address in your FTP application's 'server' or 'host' field and check an 'anonymous login' checkbox if one is available.

Transferring Files

Once connected to your HyperDeck you can transfer files as you normally would with your ftp program. Most ftp applications have a drag and drop interface but check your particular application for the appropriate method.

You can transfer any file to and from your HyperDeck, but it's worth noting that any files you intend to play back from HyperDeck Studio will need to conform to your HyperDeck's supported codecs and resolutions. You can find a list of supported codecs in the 'Blackmagic HyperDeck Setup' section of this manual.

TIP You can transfer files over a network while your HyperDeck is recording. HyperDeck will automatically adjust transfer speeds to make sure recording is not affected.

Connecting to an ATEM Switcher

If you're using an ATEM switcher, you can plug in up to 4 Blackmagic HyperDeck disk recorders and control them using the ATEM software or hardware panel. This is a very powerful feature that effectively gives you an entire videotape department at your fingertips. You can also trigger recording on your HyperDeck from an ATEM switcher, which is a great way of making an archive copy of a live broadcast, or capturing B roll when live switching a production that will be fine tuned later.

ATEM 4 M/E Broadcast Studio 4K Backmagdesign

CE FC PMS4 PMS3 PMS2 PMS1 PMS4 PMS3 PMS2 PMS1 PMS0 PMS1 PMS2 PMS3 PMS4 PMS3 PMS2 PMS1 PMS0 PMS1 PMS2 PMS3 PMS4 PMS3 PMS2 PMS1 PMS0 PMS1 PMS2 PMS3 PMS4 PMS3 PMS2 PMS1 PMS0 PMS1 PMS2 PMS3 PMS5 PMS3 PMS2 PMS1 PMS0 PMS1 PMS2 PMS3 PMS5 PMS3 PMS2 PMS1 PMS0 PMS1 PMS2 PMS3 PMS5 PMS3 PMS2 PMS1 PMS0 PMS1 PMS2 PMS3 PMS5 PMS5 PMS3 PMS2 PMS1 PMS0 PMS1 PMS2 PMS3 PMS5 PMS5 PMS3 PMS2 PMS1 PMS0 PMS1 PMS2 PMS3 PMS5 PMS5 PMS3 PMS2 PMS1 PMS0 PMS1 PMS0 PMS1 PMS2 PMS3 PMS5 PMS5

ATEM switchers, such as the ATEM 4 M/E Broadcast Studio 4K, can connect with up to four HyperDeck disk recorders

To connect HyperDecks to an ATEM switcher:

1 Connect your HyperDeck to the same network as your ATEM Switcher and note its IP address.

Your HyperDeck's IP address can be found via its front panel and LCD menu by entering the 'setup', then 'Ethernet' menus from the main menu.

Alternatively, you can access your HyperDeck's IP address on your Mac or PC via the 'configure' tab in Blackmagic HyperDeck Setup utility.

2 Connect one of your HyperDeck's SDI or HDMI outputs to an SDI or HDMI source input on your ATEM Switcher.

3 If you want to use your ATEM Switcher to trigger recording on your HyperDeck, you'll also need to connect a video source to your HyperDeck.

Simply connect an SDI or HDMI source to your HyperDeck as usual. To record your ATEM switcher's program output, connect one of your switcher's auxiliary SDI outputs to your HyperDeck's SDI input.

4 Enable remote by pressing the remote button on HyperDeck's front panel, or via the LCD menu on HyperDeck Studio Mini, to allow remote control from the switcher.

5 Complete the connection process by entering your HyperDeck's source and IP address information into your ATEM software or ATEM broadcast panel. This is very straightforward and laid out in your ATEM switcher manual.

Blackmagic Design HyperDeck Studio 4K Pro - Connecting to an ATEM Switcher - 3

natural_image Front view of a 12G SDI computer chassis showing front panel, buttons, and drive slots (no text or symbols beyond branding)

Make sure your HyperDeck has remote set to 'on' in the LCD menu, or via the control panel remote button, to enable Ethernet control with an ATEM switcher

Understanding Post Production Workflows

Accessing Your Clips

To access your clips, simply plug the SD card or SSD into your computer via an SD card slot, external reader, or SSD dock. You can either drag the files from the SSD or SD card directly to a local hard drive, or you can work directly from the SSD or SD card. You can also connect SSDs to your computer with a 2.5" eSATA to USB cable adapter, however this won't be fast enough to handle working directly from the SSD and is really only recommended as a portable solution for getting your video files off the SSD and onto a laptop.

Mac OS

QuickTime is built into Mac OS. Apple ProRes, Avid DNxHD and DNxHR QuickTime movies recorded by HyperDeck can be opened in almost any video software on Mac OS.

DNxHD and DNxHR MXF files recorded by HyperDeck can be opened with Avid Media Composer and DaVinci Resolve for Mac. DNxHD codecs can be downloaded free from http://www.avid.com/products/avid-dnxhr-and-dnxhd

MCC closed caption data files recorded by HyperDeck can be opened with MacCaption software for Mac OS from http://www.telestream.net/captioning/overview.htm

Windows

Apple ProRes QuickTime movies recorded by HyperDeck require QuickTime to be installed on your PC. Almost any video software on Windows that supports QuickTime can open movies recorded by HyperDeck. QuickTime for Windows can be downloaded free from http://www.apple.com/quicktime/download/.

DNxHD and DNxHR MXF files recorded by HyperDeck can be opened with Avid Media Composer and DaVinci Resolve for Windows. DNxHD codecs can be downloaded free from http://www.avid.com/products/avid-dnxhr-and-dnxhd

MCC closed caption data files recorded by HyperDeck can be opened with CaptionMaker software for Windows from http://www.telestream.net/captioning/overview.htm

Developer Information

Blackmagic HyperDeck Ethernet Protocol

The Blackmagic HyperDeck Ethernet Protocol is a text based protocol accessed by connecting to TCP port 9993 on HyperDeck Studio models that have a built in Ethernet connection. If you are a software developer, you can use the protocol to construct devices that integrate with our products. Here at Blackmagic Design our approach is to open up our protocols and we eagerly look forward to seeing what you come up with!

Protocol Commands

Command Command Description

help or ? Provides help text on all commands and parameters
commands return commands in XML format
device info return device information
disk list query clip list on active disk
disk list: slot id: {n} query clip list on disk in slot {n}
quit disconnect ethernet control
ping check device is responding
preview: enable: {true/false} switch to preview or output
play play from current timecode
play: speed: {-5000 to 5000} play at specific speed
play: loop: {true/false} play in loops or stop-at-end
play: single clip: {true/false} play current clip or all clips
playrangequery playrange setting
playrange set: clip id: {n}set play range to play clip {n} only
playrange set: clip id: {n} count: {m}set play range to {m} clips starting from clip {n}
playrange set: in: {inT} out: {outT}set play range to play between:- timecode {inT} and timecode {outT}
playrange set: timeline in: {in} timeline out:{out}set play range in units of frames between:- timeline position {in} and position {out} clear/reset play range setting
playrange clearclear/reset play range setting
play on startupquery unit play on startup state
play on startup: enable: {true/false}enable or disable play on startup
play on startup: single clip: {true/false}play single clip or all clips on startup
play option query play options
play option: stop mode:{lastframe/nextframe/black}set output frame when playback stops
recordrecord from current input
record: name: {name}record named clip
record spillspill current recording to next slot

Command Command Description

record: spill: slot id: {n}spill current recording to specified slotuse current id to spill to same slot
stop stop playback or recording
clips count query number of clips on timeline
clips get query all timeline clips
clips get: clip id: {n} query a timeline clip info
clips get: clip id: {n} count: {m} query m clips starting from n
clips get: version: {1/2}query clip info using specified output version:version 1: is: name startT durationversion 2: id: startT duration inT outT name
clips add: name: {name} append a clip to timeline
clips add: clip id: {n} name: {name} insert clip before existing clip {n}
clips add: in: {inT} out: {outT} name: {name} append the {inT} to {outT} portion of clip
clips remove: clip id: {n}remove clip {n} from the timeline(invalidates clip ids following clip {n})
clips clear empty timeline clip list
transport info query current activity
slot info query active slot
slot info: slot id: {n} query slot {n}
slot select: slot id: {n} switch to specified slot
slot select: video format: {format}load clips of specified format
slot unblockunblock active slot
slot unblock: slot id: {n}unblock slot {n}
cache infoquery cache status
dynamic rangequery dynamic range settings
dynamic range: playback override:{off/Rec709/Rec2020_SDR/HLG/ST2084_300/ST2084_500/ST2084_800/ST2084_1000/ST2084_2000/ST2084_4000/ST2084set playback dynamic range override
dynamic range: record override:{off/Rec709/Rec2020_SDR/HLG/ST2084_300/ST2084_500/ST2084_800/ST2084_1000/ST2084_2000/ST2084_4000/ST2048}set record dynamic range override
notifyquery notification status
notify: remote: {true/false}set remote notifications
notify: transport: {true/false}set transport notifications
notify: slot: {true/false}set slot notifications
notify: configuration: {true/false}set configuration notifications
notify: dropped frames: {true/false}set dropped frames notifications
notify: display timecode: {true/false}set display timecode notifications

Command Command Description

notify: timeline position: {true/false} set playback timeline position notifications
notify: playrange: {true/false} set playrange notifications
notify: cache: {true/false} set cache notifications
notify: dynamic range: {true/false} set dynamic range settings notifications
notify: slate: {true/false} set digital slate notifications
goto: clip id: {start/end} goto first clip or last clip
goto: clip id: {n} goto clip id {n}
goto: clip id: +{n} go forward {n} clips
goto: clip id: -(n) go backward {n} clips
goto: clip: {n} goto frame position {n} within current clip
goto: clip: +{n} go forward {n} frames within current clip
goto: clip: -(n) go backward {n} frames within current clip
goto: clip: {start/end}goto start or end of clip
goto: timeline: {n}goto frame position {n} within timeline
goto: timeline: +{n}o forward {n} frames within timeline
goto: timeline: -(n}go backward {n} frames within timeline
goto: timeline: {start/end}goto start or end of timeline
goto: timecode: {timecode}goto specified timecode
goto: timecode: +{timecode}go forward {timecode} duration
goto: timecode: -(timecode}go backward {timecode} duration
goto: slot id: {n}goto slot id {n}
jog: timecode: {timecode}jog to timecode
jog: timecode: +{timecode}jog forward {timecode} duration
jog: timecode: -(timecode}jog backward {timecode} duration
shuttle: speed: {-5000 to 5000}shuttle with speed
remotequery unit remote control state
remote: enable: {true/false}enable or disable remote control
remote: override: {true/false}session override remote control
configurationquery configuration settings
configuration: video input: SDIswitch to SDI input
configuration: video input: HDMIswitch to HDMI input
configuration: video input: componentswitch to component input
configuration: audio input: embeddedcapture embedded audio
configuration: audio input: XLRcapture XLR audio
configuration: audio input: RCAcapture RCA audio
configuration: file format: {format}switch to specific file format
configuration: audio codec: PCMswitch to PCM audio
configuration: audio codec: AACswitch to AAC audio

Command Command Description

configuration: timecode input:{external/embedded/preset/clip}change the timecode input
configuration: timecode output:{clip/timeline/internal}change the timecode output
configuration: timecode preference:{default/dropframe/nondropframe}whether or not to use drop frame timecodes when not otherwise specified
configuration: timecode preset:{timecode}set the timecode preset
configuration: audio input channels: {n} set the number of audio channels recorded to {n}
configuration: record trigger:{none/recordbit/timecoderun}change the record trigger
configuration: record prefix: {name} set the record prefix name (supports UTF-8 name)
configuration: append timestamp:{true/false}append timestamp to recorded filename
configuration: xlr input id: {n} xlr type:{line/mic}configure xlr input typemultiple xlr inputs can be configured in a single command
configuration: genlock input resync:{true/false}enable or disable genlock input resync
uptime return time since last boot
format: prepare: {format} prepare a disk formatting operation to filesystem {format}
format: confirm: {token} perform a pre-prepared formatting operation using token
identify: enable: {true/false} identify the device
watchdog: period: {period in seconds} clientconnection timeout
reboot reboot device
slate clips slate clips information
slate project slate project information
slate project:←camera: {index}←set camera index e.g. A

Command Combinations

You can combine the parameters into a single command, for example:

play: speed: 200 loop: true single clip: true

Or for configuration:

configuration: video input: SDI audio input: XLR

Or to switch to the second disk, but only play NTSC clips:

slot select: slot id: 2 video format: NTSC

Using XML

While you can use the Terminal to talk to HyperDeck, if you are writing software, you can use XML to confirm the existence of a specific command based on the firmware of the HyperDeck you are communicating with. This helps your software user interface adjust to the capabilities of the specific HyperDeck model and software version.

Protocol Details

Connection

The HyperDeck Ethernet server listens on TCP port 9993.

Basic syntax

The HyperDeck protocol is a line oriented text protocol. Lines from the server will be separated by an ascii CR LF sequence. Messages from the client may be separated by LF or CR LF.

New lines are represented in this document as a "←" symbol.

Single line command syntax

Command parameters are usually optional. A command with no parameters is terminated with a new line:

{Command name} 

If parameters are specified, the command name is followed by a colon, then pairs of parameter names and values. Each parameter name is terminated with a colon character:

{Command name}: {Parameter}: {Value} {Parameter}: {Value} ... 

Multiline command syntax

The HyperDeck protocol also supports an equivalent multiline syntax where each parameter-value pair is entered on a new line. E.g.

{Command name}:←
{Pa ra meter}: { Va lu e}←
{Pa ra meter}: { Va lu e}← 

Response syntax

Simple responses from the server consist of a three digit response code and descriptive text terminated by a new line:

{Response code} {Response text} 

If a response carries parameters, the response text is terminated with a colon, and parameter name and value pairs follow on subsequent lines until a blank line is returned:

{Response code} {Response text}:←
{Pa ra m e t e r}: { Va lu e}←
{Pa ra m e t e r}: { Va lu e}←
...
← 

Successful response codes

A simple acknowledgement of a command is indicated with a response code of 200:

200 ok← 

Other successful responses carry parameters and are indicated with response codes in the range of 201 to 299.

Failure response codes

Failure responses to commands are indicated with response codes in the range of 100 to 199:

100 syntax error
101 unsupported parameter
102 invalid value
103 unsupported
104 disk full
105 no disk
106 disk error
107 timeline empty
108 internal error
109 out of range
110 no input
111 remote control disabled
112 clip not found
120 connection rejected
150 invalid state
151 invalid codec
160 invalid format
161 invalid token
162 format not prepared
163 parameterized single line command not supported 

Asynchronous response codes

The server may return asynchronous messages at any time. These responses are indicated with response codes in the range of 500 to 599:

5xx {Response Text}:←
{Pa ra m e t e r}: {Va lu e}←
{Pa ra m e t e r}: {Va lu e}←
← 

Connection response

On connection, an asynchronous message will be delivered:

500 connection info:←
protocol version: {Version}←
model: {Model Name}← 

Connection rejection

Only one client may connect to the server at a time. If other clients attempt to connect concurrently, they will receive an error and be disconnected:

120 connection rejected 

Timecode syntax

Timecodes are expressed as non-drop-frame timecode in the format:

HH:MM:SS:FF

Handling of deck "remote" state

The “remote” command may be used to enable or disable the remote control of the deck. Any attempt to change the deck state over ethernet while remote access is disabled will generate an error:

111 remote control disabled 

To enable or disable remote control:

remote: enable: {"true", "false"} 

The current remote control state may be overridden allowing remote access over ethernet irrespective of the current remote control state:

remote: override: {"true", "false"} 

The override state is only valid for the currently connected ethernet client and only while the connection remains open.

The “remote” command may be used to query the remote control state of the deck by specifying no parameters:

remote 

The deck will return the current remote control state:

210 remote info:←
enabled: {"true", "false"}
override: {"true", "false"}
←

Asynchronous remote control information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in remote state will generate a "510 remote info:" asynchronous message with the same parameters as the "210 remote info:" message.

Closing connection

The "quit" command instructs the server to cleanly shut down the connection:

quit 

Checking connection status

The "ping" command has no function other than to determine if the server is responding:

ping← 

Getting help

The "help" or "?" commands return human readable help text describing all available commands and parameters:

help 

Or:

?← 

The server will respond with a list of all supported commands:

201 help:
{Help Tex t}
{Help Tex t} 

Switching to preview mode

The "preview" command instructs the deck to switch between preview mode and output mode:

preview: enable: {"true", "false"} 

Playback will be stopped when the deck is switched to preview mode. Capturing will be stopped when the deck is switched to output mode.

Controlling device playback

The "play" command instructs the deck to start playing:

play← 

The play command accepts a number of parameters which may be used together in most combinations.

By default, the deck will play all remaining clips on the timeline then stop.

The "single clip" parameter may be used to override this behavior:

play: single clip: {"true", "false"} 

By default, the deck will play at normal (100%) speed. An alternate speed may be specified in percentage between -1600 and 1600:

play: speed: {$ normal speed} 

By default, the deck will stop playing when it reaches to the end of the timeline. The "loop" parameter may be used to override this behavior:

play: loop: {"true", "false"} 

The “playrange” command instructs the deck to play all the clips. To override this behavior: and select a particular clip:

playrange set: clip id: {Clip ID} 

To only play a certain timecode range:

playrange set: in: {in timecode} out: {out timecode} 

To clear a set playrange and return to the default value:

playrange clear 

The “play on startup command” instructs the deck on what action to take on startup. By default, the deck will not play. Use the “enable” command to start playback after each power up.

play on startup: enable { "true", "false" } 

By default, the unit will play back all clips on startup. Use the "single clip" command to override.

play on startup: single clip: {"true", "false"} 

Stopping deck operation

The "stop" command instructs the deck to stop the current playback or capture:

stop 

Changing timeline position

The "goto" command instructs the deck to switch to playback mode and change its position within the timeline.

To go to the start of a specific clip:

goto: clip id: {Clip ID} 

To move forward/back {count} clips from the current clip on the current timeline:

goto: clip id: +/- {count} 

Note that if the resultant clip id goes beyond the first or last clip on timeline, it will be clamp at the first or last clip.

To go to the start or end of the current clip:

goto: clip: { "start", "end"} 

To go to the start of the first clip or the end of the last clip:

goto: timeline: { "start", "end"} 

To go to a specified timecode:

goto: timecode: {timecode} 

To move forward or back a specified duration in timecode:

goto: timecode: {"+", "-"}{duration in timecode} 

To specify between slot 1 and slot 2:

goto: slot id: {Slot ID} 

Note that only one parameter/value pair is allowed for each goto command.

Enumerating supported commands and parameters

The "commands" command returns the supported commands:

commands 

The command list is returned in a computer readable XML format:

212 commands:
<commands>
<command name="..."><parameter name="..."/>...</command>
<command name="..."><parameter name="..."/>...</command>
...
</commands> 

More XML tokens and parameters may be added in later releases.

Controlling asynchronous notifications

The "notify" command may be used to enable or disable asynchronous notifications from the server.

To enable or disable transport notifications:

notify: transport: {"true", "false"} 

To enable or disable slot notifications:

notify: slot: {"true", "false"} 

To enable or disable remote notifications:

notify: remote: {"true", "false"} 

To enable or disable configuration notifications:

notify: configuration: {"true", "false"} 

Multiple parameters may be specified. If no parameters are specified, the server returns the current state of all notifications:

209 notify:←
transport: { "true", "false" }←
slot: { "true", "false" }←
remote: { "true", "false" }←
configuration: { "true", "false" }←
dropped frames: { "true", "false" }←
display timecode: { "true", "false" }←
timeline position: { "true", "false" }←
playrange: { "true", "false" }←
cache: { "true", "false" }←
dynamic range: { "true", "false" }←
slate: { "true", "false" }← 

Retrieving device information

The "device info" command returns information about the connected deck device:

device info 

The server will respond with:

204 device info:←
protocol version: {Version}←
model: {Model Name}←
unique id: {unique alphanumeric identifier}←
slot count: {number of storage slots}←
software version: {software version}← 

Retrieving slot information

The "slot info" command returns information about a slot. Without parameters, the command returns information for the currently selected slot:

slot info 

If a slot Id is specified, that slot will be queried:

slot info: slot id: {Slot ID} 

The server will respond with slot specific information:

202 slot info:←
slot id: {Slot ID}←
    status: {"empty", "mounting", "error", "mounted"}←
volume name: {Volume name}←
recording time: {recording time available in seconds}←
video format: {disk's default video format}←
blocked: {"true", "false"}← 

Asynchronous slot information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in slot state will generate a "502 slot info:" asynchronous message with the same parameters as the "202 slot info:" message.

Retrieving clip information

The "disk list" command returns the information for each playable clip on a given disk. Without parameters, the command returns information for the current active disk:

disk list 

If a slot id is specified, the disk in that slot will be queried:

disk list: slot id: {Slot ID} 

The server responds with the list of all playable clips on the disk in the format of: Index, name, formats, and duration in timecode:

206 disk list:←
slot id: {Slot ID}←
{clip index}: {name} {file format} {video format} {Duration timecode}←
{clip index}: {name} {file format} {video format} {Duration timecode}←
...
← 

Note that the clip index starts from 1.

Retrieving clip count

The "clips count" command returns the number of clips on the current timeline:

clips count ← 

The server responds with the number of clips:

214 clips count: ←
clip count: {Count}← 

Retrieving timeline information

The "clips get" command returns information for each available clip on the current timeline. Without parameters, the command returns information for all clips on timeline:

clips get← 

The server responds with a list of clip IDs, names and timecodes:

205 clips info:
clip count: {Count}
{Clip ID}: {Name} {Start timecode} {Duration timecode}
{Clip ID}: {Name} {Start timecode} {Duration timecode}
... 

Retrieving transport information

The "transport info" command returns the state of the transport:

transport info 

The server responds with transport specific information:

208 transport info:
status: { "preview", "stopped", "play", "forward", "rewind", "jog", "shuttle", "record"}←
speed: {Play speed between -5000 and 5000 %}←
slot id: {Slot ID or "none"}←
clip id: {Clip ID or "none"}←
single clip: { "true", "false"}←
display timecode: {timecode}←
timecode: {timecode}←
video format: {Video format}←
loop: { "true", "false"}←
timeline: {n}←
input video format: {Video format"}←
dynamic range: { "off", "Rec709", "Rec2020_SDR", "HLG", "ST2084_300", "ST2084_500", "ST2084_800", "ST2084_1000", "ST2084_2000", "ST2084_4000", "ST2048" or "none"}← 

The "timecode" value is the timecode within the current timeline for playback or the clip for record. The "display timecode" is the timecode displayed on the front of the deck. The two timecodes will differ in some deck modes.

Asynchronous transport information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in transport state will generate a "508 transport info:" asynchronous message with the same parameters as the "208 transport info:" message.

Video Formats

The following video formats are currently supported on HyperDeck Studio:

NTSC, PAL, NTSCp, PALp

720p50, 720p5994, 720p60

1080p23976, 1080p24, 1080p25, 1080p2997, 1080p30

1080i50, 1080i5994, 1080i60

HyperDeck Studio Pro and Plus models support these 4k formats:

4Kp23976, 4Kp24, 4Kp25, 4Kp2997, 4Kp30

HyperDeck Studio 4K Pro adds support for the following 4k formats:

4Kp50, 4Kp5994, 4Kp60

Video format support may vary between models and software releases.

File Formats

All HyperDeck models currently support the following file formats:

H.264High_SDI

H.264High

H.264Medium

H.264Low

QuickTimeProResHQ

QuickTimeProRes

QuickTimeProResLT

QuickTimeProResProxy

QuickTimeDNxHD220x

DNxHD220x

QuickTimeDNxHD145

DNxHD145

QuickTimeDNxHD45

DNxHD45

HyperDeck Studio 4K Pro also supports the following file formats:

H.265High_SDI

H.265High

H.265Medium

H.265Low

QuickTimeDNxHR_HQX

DNxHR_HQX 4Kp60

QuickTimeDNxHR_SQ

DNxHR_SQ

QuickTimeDNxHR_LB

DNxHR_LB

Supported file formats may vary between models and software releases.

Querying and updating configuration information

The "configuration" command may be used to query the current configuration of the deck:

configuration 

The server returns the configuration of the deck:

211 configuration:
audio input: { "embedded", "XLR", "RCA" } 
audio mapping: {n} 
video input: { "SDI", "HDMI", "component", "composite" } 
file format: {format} 
audio codec: { "PCM", "AAC" } 
timecode input: { "external", "embedded", "preset", "clip" } 
timecode output: { "clip", "timeline" } 
timecode preference: { "default", "dropframe", "nondropframe" } 
timecode preset: {timecode} 
audio input channels: {n} 
record trigger: { "none", "recordbit", "timecoderun" } 
record prefix: {name} 
append timestamp: { "true", "false" } 

One or more configuration parameters may be specified to change the configuration of the deck.

To change the current video input:

configuration: video input: {"SDI", "HDMI", "component"} 

Valid video inputs may vary between models. To configure the current audio input:

configuration: audio input: {"embedded", "XLR", "RCA"} 

Valid audio inputs may vary between models.

To configure the current file format:

configuration: file format: {File format} 

Note that changes to the file format may require the deck to reset, which will cause the client connection to be closed. In such case, response code 213 will be returned (instead of 200) before the client connection is closed:

"213 deck rebooting" 

Asynchronous configuration information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in configuration will generate a "511 configuration:" asynchronous message with the same parameters as the "211 configuration:" message.

Selecting active slot and video format

The "slot select" command instructs the deck to switch to a specified slot, or/and to select a specified output video format.

To switch to a specified slot:

slot select: slot id: {slot ID} 

To select the output video format:

slot select: video format: {video format} 

Either or all slot select parameters may be specified. Note that selecting video format will result in a rescan of the disk to reconstruct the timeline with all clips of the specified video format.

Clearing the current timeline

The "clips clear" command instructs the deck to empty the current timeline:

clips clear 

The server responds with

200 ok← 

Adding a clip to the current timeline

The "clips add:" command instructs the deck to add a clip to the current timeline:

clips add: name: {"clip name"} 

The server responds with

200 ok← 

or in case of error

1xx {error description} 

Configuring the watchdog

The “watchdog” command instructs the deck to monitor the connected client and terminate the connection if the client is inactive for at least a specified period of time.

To configure the watchdog:

watchdog: period: {period in seconds} 

To avoid disconnection, the client must send a command to the server at least every [period] seconds. Note that if the period is set to 0 or less than 0, connection monitoring will be disabled.

Help

Getting Help

The fastest way to obtain help is to go to the Blackmagic Design online support pages and check the latest support material available for your Blackmagic HyperDeck disk recorder.

Blackmagic Design Online Support Pages

The latest manual, software and support notes can be found at the Blackmagic Design support center at www.blackmagicdesign.com/support.

Blackmagic Design Forum

The Blackmagic Design forum on our website is a helpful resource you can visit for more information and creative ideas. This can also be a faster way of getting help as there may already be answers you can find from other experienced users and Blackmagic Design staff which will keep you moving forward. You can visit the forum at https://forum.blackmagicdesign.com

Contacting Blackmagic Design Support

If you can't find the help you need in our support material or on the forum, please use the "Send us an email" button on the support page to email a support request. Alternatively, click on the "Find your local support team" button on the support page and call your nearest Blackmagic Design support office.

Checking the Software Version Currently Installed

To check which version of Blackmagic HyperDeck software is installed on your computer, open the About Blackmagic HyperDeck Setup window.

  • On Mac OS, open Blackmagic HyperDeck Setup from the Applications folder. Select About Blackmagic HyperDeck Setup from the application menu to reveal the version number.
  • On Windows, open Blackmagic HyperDeck Setup utility from your Start menu or Start Screen. Click on the Help menu and select About Blackmagic HyperDeck Setup to reveal the version number.

How to Get the Latest Software Updates

After checking the version of Blackmagic HyperDeck Setup software installed on your computer, please visit the Blackmagic Design support center at www.blackmagicdesign.com/support to check for the latest updates. While it is usually a good idea to run the latest updates, it is wise to avoid updating any software if you are in the middle of an important project.

Regulatory Notices

Disposal of Waste of Electrical and Electronic Equipment Within the European Union.

Blackmagic Design HyperDeck Studio 4K Pro - Disposal of Waste of Electrical and Electronic Equipment Within the European Union. - 1

The symbol on the product indicates that this equipment must not be disposed of with other waste materials. In order to dispose of your waste equipment, it must be handed over to a designated collection point for recycling. The separate collection and recycling of your waste equipment at the time of disposal will help conserve natural resources and ensure that it is recycled in a manner that protects human health and the environment. For more information about where you can drop off your waste equipment for recycling, please contact your local city recycling office or the dealer from whom you purchased the product.

Blackmagic Design HyperDeck Studio 4K Pro - Disposal of Waste of Electrical and Electronic Equipment Within the European Union. - 2

This equipment has been tested and found to comply with the limits for a Class A digital device, pursuant to Part 15 of the FCC rules. These limits are designed to provide reasonable protection against harmful interference when the equipment is operated in a commercial environment. This equipment generates, uses, and can radiate radio frequency energy and, if not installed and used in accordance with the instructions, may cause harmful interference to radio communications. Operation of this product in a residential area is likely to cause harmful interference, in which case the user will be required to correct the interference at personal expense.

Operation is subject to the following two conditions:

1 This device may not cause harmful interference.
2 This device must accept any interference received, including interference that may cause undesired operation.

Blackmagic Design HyperDeck Studio 4K Pro - Disposal of Waste of Electrical and Electronic Equipment Within the European Union. - 3

R-R-BMD-20210202002

R-R-BMD-20210202003

R-R-BMD-20201201003

R-R-BMD-20210301001

ISED Canada Statement

Blackmagic Design HyperDeck Studio 4K Pro - ISED Canada Statement - 1

This device complies with Canadian standards for Class A digital apparatus.

Any modifications or use of this product outside its intended use could void compliance to these standards.

Connection to HDMI interfaces must be made with high quality shielded HDMI cables.

This equipment has been tested for compliance with the intended use in a commercial environment. If the equipment is used in a domestic environment, it may cause radio interference.

Safety Information

For protection against electric shock, the equipment must be connected to a mains socket outlet with a protective earth connection. In case of doubt contact a qualified electrician.

To reduce the risk of electric shock, do not expose this equipment to dripping or splashing.

Product is suitable for use in tropical locations with an ambient temperature of up to 40 °C.

Ensure that adequate ventilation is provided around the product and that it is not restricted.

When rack mounting, ensure that the ventilation is not restricted by adjacent equipment.

No operator serviceable parts inside product. Refer servicing to your local Blackmagic Design service center.

Blackmagic Design HyperDeck Studio 4K Pro - Safety Information - 1

Use only at altitudes not more than 2000m above sea level.

State of California statement

This product can expose you to chemicals such as trace amounts of polybrominated biphenyls within plastic parts, which is known to the state of California to cause cancer and birth defects or other reproductive harm.

For more information go to www.P65Warnings.ca.gov.

Warning for Authorized Service Personnel

Blackmagic Design HyperDeck Studio 4K Pro - Warning for Authorized Service Personnel - 1

Blackmagic Design HyperDeck Studio 4K Pro - Warning for Authorized Service Personnel - 2

Disconnect power from both power inlets before servicing!

Warranty

12 Month Limited Warranty

Blackmagic Design warrants that this product will be free from defects in materials and workmanship for a period of 12 months from the date of purchase. If a product proves to be defective during this warranty period, Blackmagic Design, at its option, either will repair the defective product without charge for parts and labor, or will provide a replacement in exchange for the defective product.

In order to obtain service under this warranty, you the Customer, must notify Blackmagic Design of the defect before the expiration of the warranty period and make suitable arrangements for the performance of service. The Customer shall be responsible for packaging and shipping the defective product to a designated service center nominated by Blackmagic Design, with shipping charges pre paid. Customer shall be responsible for paying all shipping charges, insurance, duties, taxes, and any other charges for products returned to us for any reason.

This warranty shall not apply to any defect, failure or damage caused by improper use or improper or inadequate maintenance and care. Blackmagic Design shall not be obligated to furnish service under this warranty: a) to repair damage resulting from attempts by personnel other than Blackmagic Design representatives to install, repair or service the product, b) to repair damage resulting from improper use or connection to incompatible equipment, c) to repair any damage or malfunction caused by the use of non Blackmagic Design parts or supplies, or d) to service a product that has been modified or integrated with other products when the effect of such a modification or integration increases the time or difficulty of servicing the product. THIS WARRANTY IS GIVEN BY BLACKMAGIC DESIGN IN LIEU OF ANY OTHER WARRANTIES, EXPRESS OR IMPLIED. BLACKMAGIC DESIGN AND ITS VENDORS DISCLAIM ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. BLACKMAGIC DESIGN'S RESPONSIBILITY TO REPAIR OR REPLACE DEFECTIVE PRODUCTS IS THE WHOLE AND EXCLUSIVE REMEDY PROVIDED TO THE CUSTOMER FOR ANY INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES IRRESPECTIVE OF WHETHER BLACKMAGIC DESIGN OR THE VENDOR HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. BLACKMAGIC DESIGN IS NOT LIABLE FOR ANY ILLEGAL USE OF EQUIPMENT BY CUSTOMER. BLACKMAGIC IS NOT LIABLE FOR ANY DAMAGES RESULTING FROM USE OF THIS PRODUCT. USER OPERATES THIS PRODUCT AT OWN RISK.

Copyright 2021 Blackmagic Design. All rights reserved. 'Blackmagic Design', 'DeckLink', 'HDLink', 'Workgroup Videohub', 'Multibridge Pro', 'Multibridge Extreme', 'Intensity' and 'Leading the creative video revolution' are registered trademarks in the US and other countries. All other company and product names may be trade marks of their respective companies with which they are associated.

HyperDeck ディスクレコーダー

Video editing room with two operators monitoring multiple screens displaying 'Business Daily' and 'CREAS NEWS' content, surrounded by media equipment.

Blackmagic Design HyperDeck Studio 4K Pro - HyperDeck ディスクレコーダー - 2

natural_image Circular portrait photo of a smiling man in a black polo shirt (no text or symbols visible)

ようこそ

Blackmagic Design CEO

グ ラント・ペ ティ

目次

natural_image Front view of a black audio workstation with multiple audio equipment panels and control knobs (no visible text or symbols)

HyperDeck Studio HD ProおよびHyperDeck Studio 4K Pro

Blackmagic Design HyperDeck Studio 4K Pro - 目次 - 1

natural_image Black audio recording device with digital display and control buttons (no readable text or symbols)

HyperDeck Studio HD Mini

Blackmagic Design HyperDeck Studio 4K Pro - 目次 - 2

natural_image Black audio recording device with multiple control knobs and a digital display showing time, location, and terrain (no readable text or symbols)

HyperDeck Studio HD Plus

natural_image Front panel of a network equipment rack with multiple ports and connectors (no visible text or labels)
natural_image Illustration of a hand holding a device panel with buttons and a video player interface (no text or symbols on the device itself)

メディアの 接 続

natural_image Diagram of a server rack with ports and an orange arrow indicating a specific component (no text or symbols present)

メディアバー

natural_image Front view of a rack-mounted server unit with control panel and drive slots (no visible text or labels)
natural_image Front view of a computer drive chassis showing ports, buttons, and memory slots (no text or symbols)
Command Reply No Remote Notes
0 - System Control
0x00 0x11 DeviceTypeRequestNTSC: 0xF0E0PAL: 0xF1E024P: 0xF2E0Enabled
1 - Slave Response
0x200x00StopAcknowledgeDisabled
0x200x01PlayAcknowledgeDisabled
0x200x02RecordAcknowledgeDisabled
0x200x04StandbyOffAcknowledgeDisabled
0x200x05StandbyOnAcknowledgeDisabled
0x200x0FEjectAcknowledgeDisabled
0x200x10FastFwdAcknowledgeDisabled
0x210x11JogFwd1AcknowledgeDisabled
0x220x11JogFwd2AcknowledgeDisabledTreated as N=1;Same as JogFwd1
0x210x12VarFwd1AcknowledgeDisabledUses ShuttleFwd1
0x220x12VarFwd2AcknowledgeDisabledTreated as N=1;Same as VarFwd1
0x210x13ShuttleFwd1AcknowledgeDisabled
0x220x13ShuttleFwd2AcknowledgeDisabledTreated as N=1;Same as ShuttleFwd1
0x200x20RewindAcknowledgeDisabled
0x210x21JogRev1AcknowledgeDisabled
0x220x21JogRev2AcknowledgeDisabledTreated as N=1;Same as JogRev1
0x210x22VarRev1AcknowledgeDisabledUses ShuttleRev1

Command Reply No Remote Notes

0x22 0x22 VarRev2 Acknowledge DisabledTreated as N=1;Same as VarRev1
0x210x23ShuttleRev1AcknowledgeDisabled
0x220x23ShuttleRev2AcknowledgeDisabledTreated as N=1;Same as ShuttleRev1
0x200x30PrerollAcknowledgeDisabled
0x24 0x31 CueData Acknowledge Disabled
0x200x34SyncPlayAcknowledgeDisabled
0x200x40PreviewAcknowledgeDisabledStatus bits are set
0x200x41ReviewAcknowledgeDisabledStatus bits are set
0x200x43OutpointPreviewAcknowledgeDisabled
0x220x5CDMCSetFwdAcknowledgeDisabled
0x220x5DDMCSetRevAcknowledgeDisabled
0x200x60FullEEOffAcknowledgeDisabled
0x200x61FullEEOnAcknowledgeDisabled
0x200x63SelectEEOnAcknowledgeDisabled
4 - Preset/Select Control
0x400x10InEntryAcknowledgeDisabled
0x400x11OutEntryAcknowledgeDisabled
0x440x14InDataPresetAcknowledgeDisabled
0x440x15OutDataPresetAcknowledgeDisabled
0x400x18InShift+AcknowledgeDisabled
0x400x19InShift-AcknowledgeDisabled
0x400x1AOutShift+AcknowledgeDisabled
0x400x1BOutShift-AcknowledgeDisabled
0x400x20InResetAcknowledgeDisabled
0x400x21OutResetAcknowledgeDisabled
0x400x22AlnResetAcknowledgeDisabled
0x400x23AOutResetAcknowledgeDisabled
0x440x31PrerollPresetAcknowledgeDisabled
0x400x40AutoModeOffAcknowledgeDisabledignored, Status bit remembered
0x400x41AutoModeOnAcknowledgeDisabledignored, Status bit remembered
0x410x37InputCheckAcknowledgeDisabled

Command Reply No Remote Notes
6 - Sense Request

0x61 0x0A TimeCodeGenSense — —
0x61 0x0C CurrentTimeSense — —
0x60 0x10 InDataSense InData Enabled
0x600x11OutDataSenseOutDataEnabled
0x600x12AlnDataSenseAlnDataEnabled
0x600x13AOutDataSenseAOutDataEnabled
0x610x20StatusSenseStatusDataEnabled
0x600x2BRemainTimeSenseRemainTimeDataEnabled
0x600x2ESpeedSenseSpeedDataEnabled
0x600x31PrerollTimeSensePreRollTimeDataEnabled
0x600x36TimerModeSenseTimerModeDataEnabled
0x600x3ERecordInhibitSenseRecordInhibitStatusEnabled

7 - Sense Reply

0x780x00Timer1DataCurrent Time and 00:00:00:00
0x780x04LTCUserBitsTimeDataCurrent Time and 00:00:00:00
0x780x06VITCUserBitsTimeDataCurrent Time and 00:00:00:00
0x740x06VITCTimeDataCurrent Time
0x740x07UserBitsVITCTimeData00:00:00:00
0x740x08GenTCDATACurrent Time
0x780x08GenTCUBDataCurrent Time and 00:00:00:00
0x740x09GenUBData00:00:00:00
0x74 0x10 InData— —
0x740x11OutData
0x740x12AlnData
0x740x13AOutData
0x740x14CorrectedLTCTimeDataCurrent Time
0x700x20StatusDataPlease see “Status Bits” sheet: Limited to 9 bytes of status, silently truncated
0x760x2BRemainTimeData
0x710x2ESpeedData
0x740x31PrerollTimeData
0x710x36TimerModeDataReturns 0 (TimeCode)
0x720x3ERecordInhibitStatus

Command Reply No Remote Notes
A - Advanced Media Protocol

0xA10x01AutoSkipAcknowledgeDisabled8-bit signed number of clips to skip from current clip
0xAX0x15ListNextIDIDListingEnabledwhen x = 0 single clip request when x = 1, # clips can be specified in the send data
0x200x29ClearPlaylistAcknowledgeDisabled
0x410x42SetPlaybackLoopAcknowledgeDisabledBit 0 loop mode enable, 0=false 1=trueBit 1 is single clip/timeline0=single clip1=timeline
0x410x44SetStopModeAcknowledgeDisabled0 = Off1 = Freeze on last frame2 = Freeze on next clip3 = Show black
0x4f0x16AppendPresetAcknowledgeDisabled2 Bytes for the length N of the clip nameN Bytes for each character of the clip name4 Byte in point timecode (format is FFSSMMHH)4 Byte out point timecode (format is FFSSMMHH)

Blackmagic Extensions

0x820x02BMDSeekToTimelinePositionAcknowledgeDisabled16-bit little endian fractional position [0..65535]
0x810x03BMDSeekRelativeClipAcknowledgeDisabledOne-byte signed integer, which is the number of clips to skip (negative for backwards).

RS-422デベロッパー情報

bit 7bit 6bit 5bit 4bit 3bit 2bit 1bit 0
Byte 000Cassette out0000Local
Byte 1Standby0Stop0RewindForwardRecordPlay
Byte 2Servo Lock0ShuttleJogVarDirectionStill1
Byte 3Auto Mode000Aout SetAin SetOut SetIn Set
Byte 4Select EEFull EELoop Playback00000
Byte 500000000
Byte 60Lamp StillLamp FwdLamp Rev0000
Byte 700000000
Byte 800Near EOTEOT0000
Byte 900000000
Variables
Cassette OutSet if no SSD is present
LocalSet if Remote is disabled (local control)
StandbySet if a disk is available
DirectionClear if playback is forwarding, set if playback is reversing
StillSet if playback is paused, or if in input preview mode
Auto ModeSet if in Auto Mode
Select EE, Full EESet if in input preview mode
Lamp Still/Fwd/RevSet according to playback speed and direction
Near EOTSet if total space left on available SSDs is less than 3 minutes
EOTSet if total space left on available SSDs is less than 30 seconds
Others
Cue Complete (byte 2, bit 0)Always 1: Cue requests are always instantaneous
HyperDeck Serial RS-422 Protocol
ProtocolBased on Sony 9-pin protocol
InterfaceBaud rate 38.4 Kbps
1 start bit
8 data bits
1 stop bit
1 parity bit
Odd parity

ネットワークでファイルを転送

natural_image Front view of a 12G SDI computer chassis showing front panel, buttons, and drive slots (no text or symbols beyond branding)

The Blackmagic HyperDeck Ethernet Protocol is a text based protocol accessed by connecting to TCP port 9993 on HyperDeck Studio models that have a built in Ethernet connection. If you are a software developer, you can use the protocol to construct devices that integrate with our products. Here at Blackmagic Design our approach is to open up our protocols and we eagerly look forward to seeing what you come up with!

Protocol Commands

Command Command Description
help or ? Provides help text on all commands and parameters
commands return commands in XML format
device info return device information
disk list query clip list on active disk
disk list: slot id: {n} query clip list on disk in slot {n}
quit disconnect ethernet control
ping check device is responding
preview: enable: {true/false} switch to preview or output
play play from current timecode
play: speed: {-5000 to 5000} play at specific speed
play: loop: {true/false} play in loops or stop-at-end
play: single clip: {true/false}play current clip or all clips
playrangequery playrange setting
playrange set: clip id: {n}set play range to play clip {n} only
playrange set: clip id: {n} count: {m}set play range to {m} clips starting from clip {n}
playrange set: in: {inT} out: {outT}set play range to play between:- timecode {inT} and timecode {outT}
playrange set: timeline in: {in} timeline out: {out}set play range in units of frames between:- timeline position {in} and position {out} clear/reset play range setting
playrange clearclear/reset play range setting
play on startupquery unit play on startup state
play on startup: enable: {true/false}enable or disable play on startup
play on startup: single clip: {true/false}play single clip or all clips on startup
play option query play options
play option: stop mode:{lastframe/nextframe/black}set output frame when playback stops
recordrecord from current input
record: name: {name}record named clip
record spillspill current recording to next slot

Command Command Description

record: spill: slot id: {n}spill current recording to specified slotuse current id to spill to same slot
stop stop playback or recording
clips count query number of clips on timeline
clips get query all timeline clips
clips get: clip id: {n} query a timeline clip info
clips get: clip id: {n} count: {m} query m clips starting from n
clips get: version: {1/2}query clip info using specified output version:version 1: is: name startT durationversion 2: id: startT duration inT outT name
clips add: name: {name} append a clip to timeline
clips add: clip id: {n} name: {name} insert clip before existing clip {n}
clips add: in: {inT} out: {outT} name: {name} append the {inT} to {outT} portion of clip
clips remove: clip id: {n}remove clip {n} from the timeline(invalidates clip ids following clip {n})
clips clear empty timeline clip list
transport info query current activity
slot info query active slot
slot info: slot id: {n} query slot {n}
slot select: slot id: {n} switch to specified slot
slot select: video format: {format}load clips of specified format
slot unblockunblock active slot
slot unblock: slot id: {n}unblock slot {n}
cache infoquery cache status
dynamic rangequery dynamic range settings
dynamic range: playback override:{off/Rec709/Rec2020_SDR/HLG/ST2084_300/ST2084_500/ST2084_800/ST2084_1000/ST2084_2000/ST2084_4000/ST2084set playback dynamic range override
dynamic range: record override:{off/Rec709/Rec2020_SDR/HLG/ST2084_300/ST2084_500/ST2084_800/ST2084_1000/ST2084_2000/ST2084_4000/ST2048}set record dynamic range override
notifyquery notification status
notify: remote: {true/false}set remote notifications
notify: transport: {true/false}set transport notifications
notify: slot: {true/false}set slot notifications
notify: configuration: {true/false}set configuration notifications
notify: dropped frames: {true/false}set dropped frames notifications
notify: display timecode: {true/false}set display timecode notifications

Command Command Description

notify: timeline position: {true/false} set playback timeline position notifications
notify: playrange: {true/false} set playrange notifications
notify: cache: {true/false} set cache notifications
notify: dynamic range: {true/false} set dynamic range settings notifications
notify: slate: {true/false} set digital slate notifications
goto: clip id: {start/end} goto first clip or last clip
goto: clip id: {n} goto clip id {n}
goto: clip id: +{n} go forward {n} clips
goto: clip id: -(n) go backward {n} clips
goto: clip: {n} goto frame position {n} within current clip
goto: clip: +{n} go forward {n} frames within current clip
goto: clip: -(n) go backward {n} frames within current clip
goto: clip: {start/end}goto start or end of clip
goto: timeline: {n}goto frame position {n} within timeline
goto: timeline: +{n}o forward {n} frames within timeline
goto: timeline: -(n}go backward {n} frames within timeline
goto: timeline: {start/end}goto start or end of timeline
goto: timecode: {timecode}goto specified timecode
goto: timecode: +{timecode}go forward {timecode} duration
goto: timecode: -(timecode}go backward {timecode} duration
goto: slot id: {n}goto slot id {n}
jog: timecode: {timecode}jog to timecode
jog: timecode: +{timecode}jog forward {timecode} duration
jog: timecode: -(timecode}jog backward {timecode} duration
shuttle: speed: {-5000 to 5000}shuttle with speed
remotequery unit remote control state
remote: enable: {true/false}enable or disable remote control
remote: override: {true/false}session override remote control
configurationquery configuration settings
configuration: video input: SDIswitch to SDI input
configuration: video input: HDMIswitch to HDMI input
configuration: video input: componentswitch to component input
configuration: audio input: embeddedcapture embedded audio
configuration: audio input: XLRcapture XLR audio
configuration: audio input: RCAcapture RCA audio
configuration: file format: {format}switch to specific file format
configuration: audio codec: PCMswitch to PCM audio
configuration: audio codec: AACswitch to AAC audio

Command Command Description

configuration: timecode input:{external/embedded/preset/clip}change the timecode input
configuration: timecode output:{clip/timeline/internal}change the timecode output
configuration: timecode preference:{default/dropframe/nondropframe}whether or not to use drop frame timecodes when not otherwise specified
configuration: timecode preset:{timecode}set the timecode preset
configuration: audio input channels: {n} set the number of audio channels recorded to {n}
configuration: record trigger:{none/recordbit/timecoderun}change the record trigger
configuration: record prefix: {name} set the record prefix name (supports UTF-8 name)
configuration: append timestamp:{true/false}append timestamp to recorded filename
configuration: xlr input id: {n} xlr type:{line/mic}configure xlr input typemultiple xlr inputs can be configured in a single command
configuration: genlock input resync:{true/false}enable or disable genlock input resync
uptime return time since last boot
format: prepare: {format} prepare a disk formatting operation to filesystem {format}
format: confirm: {token} perform a pre-prepared formatting operation using token
identify: enable: {true/false} identify the device
watchdog: period: {period in seconds} clientconnection timeout
reboot reboot device
slate clips slate clips information
slate project slate project information
slate project:←camera: {index}←set camera index e.g. A

Command Combinations

You can combine the parameters into a single command, for example:

play: speed: 200 loop: true single clip: true

Or for configuration:

configuration: video input: SDI audio input: XLR

Or to switch to the second disk, but only play NTSC clips:

slot select: slot id: 2 video format: NTSC

Using XML

While you can use the Terminal to talk to HyperDeck, if you are writing software, you can use XML to confirm the existence of a specific command based on the firmware of the HyperDeck you are communicating with. This helps your software user interface adjust to the capabilities of the specific HyperDeck model and software version.

Protocol Details

Connection

The HyperDeck Ethernet server listens on TCP port 9993.

Basic syntax

The HyperDeck protocol is a line oriented text protocol. Lines from the server will be separated by an ascii CR LF sequence. Messages from the client may be separated by LF or CR LF.

New lines are represented in this document as a "←" symbol.

Single line command syntax

Command parameters are usually optional. A command with no parameters is terminated with a new line:

{Command name} 

If parameters are specified, the command name is followed by a colon, then pairs of parameter names and values. Each parameter name is terminated with a colon character:

{Command name}: {Parameter}: {Value} {Parameter}: {Value} ... 

Multiline command syntax

The HyperDeck protocol also supports an equivalent multiline syntax where each parameter-value pair is entered on a new line. E.g.

{Command name}:←
{Pa ra m e t e r}: { Va lu e}←
{Pa ra m e t e r}: { Va lu e}← 

Response syntax

Simple responses from the server consist of a three digit response code and descriptive text terminated by a new line:

{Response code} {Response text} 

If a response carries parameters, the response text is terminated with a colon, and parameter name and value pairs follow on subsequent lines until a blank line is returned:

{Response code} {Response text}:←
{Pa ra m e t e r}: { Va lu e}←
{Pa ra m e t e r}: { Va lu e}←
...
← 

Successful response codes

A simple acknowledgement of a command is indicated with a response code of 200:

200 ok← 

Other successful responses carry parameters and are indicated with response codes in the range of 201 to 299.

Failure response codes

Failure responses to commands are indicated with response codes in the range of 100 to 199:

100 syntax error
101 unsupported parameter
102 invalid value
103 unsupported
104 disk full
105 no disk
106 disk error
107 timeline empty
108 internal error
109 out of range
110 no input
111 remote control disabled
112 clip not found
120 connection rejected
150 invalid state
151 invalid codec
160 invalid format
161 invalid token
162 format not prepared
163 parameterized single line command not supported 

Asynchronous response codes

The server may return asynchronous messages at any time. These responses are indicated with response codes in the range of 500 to 599:

5xx {Response Text}:←
{Pa ra m e t e r}: {Va lu e}←
{Pa ra m e t e r}: {Va lu e}←
← 

Connection response

On connection, an asynchronous message will be delivered:

500 connection info:←
protocol version: {Version}←
model: {Model Name}← 

Connection rejection

Only one client may connect to the server at a time. If other clients attempt to connect concurrently, they will receive an error and be disconnected:

120 connection rejected 

Timecode syntax

Timecodes are expressed as non-drop-frame timecode in the format:

HH:MM:SS:FF

Handling of deck "remote" state

The “remote” command may be used to enable or disable the remote control of the deck. Any attempt to change the deck state over ethernet while remote access is disabled will generate an error:

111 remote control disabled 

To enable or disable remote control:

remote: enable: {"true", "false"} 

The current remote control state may be overridden allowing remote access over ethernet irrespective of the current remote control state:

remote: override: {"true", "false"} 

The override state is only valid for the currently connected ethernet client and only while the connection remains open.

The “remote” command may be used to query the remote control state of the deck by specifying no parameters:

remote 

The deck will return the current remote control state:

210 remote info:←
enabled: {"true", "false"}
override: {"true", "false"} 

Asynchronous remote control information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in remote state will generate a "510 remote info:" asynchronous message with the same parameters as the "210 remote info:" message.

Closing connection

The "quit" command instructs the server to cleanly shut down the connection:

quit 

Checking connection status

The "ping" command has no function other than to determine if the server is responding:

ping← 

Getting help

The "help" or "?" commands return human readable help text describing all available commands and parameters:

help 

Or:

?← 

The server will respond with a list of all supported commands:

201 help:
{Help Tex t}
{Help Tex t} 

Switching to preview mode

The "preview" command instructs the deck to switch between preview mode and output mode:

preview: enable: {"true", "false"} 

Playback will be stopped when the deck is switched to preview mode. Capturing will be stopped when the deck is switched to output mode.

Controlling device playback

The "play" command instructs the deck to start playing:

play← 

The play command accepts a number of parameters which may be used together in most combinations.

By default, the deck will play all remaining clips on the timeline then stop.

The "single clip" parameter may be used to override this behavior:

play: single clip: {"true", "false"} 

By default, the deck will play at normal (100%) speed. An alternate speed may be specified in percentage between -1600 and 1600:

play: speed: {$ normal speed} 

By default, the deck will stop playing when it reaches to the end of the timeline. The "loop" parameter may be used to override this behavior:

play: loop: {"true", "false"} 

The “playrange” command instructs the deck to play all the clips. To override this behavior: and select a particular clip:

playrange set: clip id: {Clip ID} 

To only play a certain timecode range:

playrange set: in: {in timecode} out: {out timecode} 

To clear a set playrange and return to the default value:

playrange clear 

The “play on startup command” instructs the deck on what action to take on startup. By default, the deck will not play. Use the “enable” command to start playback after each power up.

play on startup: enable { "true", "false" } 

By default, the unit will play back all clips on startup. Use the "single clip" command to override.

play on startup: single clip: {"true", "false"} 

Stopping deck operation

The "stop" command instructs the deck to stop the current playback or capture:

stop 

Changing timeline position

The "goto" command instructs the deck to switch to playback mode and change its position within the timeline.

To go to the start of a specific clip:

goto: clip id: {Clip ID} 

To move forward/back {count} clips from the current clip on the current timeline:

goto: clip id: +/- {count} 

Note that if the resultant clip id goes beyond the first or last clip on timeline, it will be clamp at the first or last clip.

To go to the start or end of the current clip:

goto: clip: { "start", "end"} 

To go to the start of the first clip or the end of the last clip:

goto: timeline: { "start", "end"} 

To go to a specified timecode:

goto: timecode: {timecode} 

To move forward or back a specified duration in timecode:

goto: timecode: {“+”, “-”} {duration in timecode} 

To specify between slot 1 and slot 2:

goto: slot id: {Slot ID} 

Note that only one parameter/value pair is allowed for each goto command.

Enumerating supported commands and parameters

The "commands" command returns the supported commands:

commands 

The command list is returned in a computer readable XML format:

212 commands:
<commands>
<command name="..."><parameter name="..."/>...</command>
<command name="..."><parameter name="..."/>...</command>
...
</commands> 

More XML tokens and parameters may be added in later releases.

Controlling asynchronous notifications

The "notify" command may be used to enable or disable asynchronous notifications from the server.

To enable or disable transport notifications:

notify: transport: {"true", "false"} 

To enable or disable slot notifications:

notify: slot: {"true", "false"} 

To enable or disable remote notifications:

notify: remote: {"true", "false"} 

To enable or disable configuration notifications:

notify: configuration: {"true", "false"} 

Multiple parameters may be specified. If no parameters are specified, the server returns the current state of all notifications:

209 notify:
transport: {"true", "false"}
slot: {"true", "false"}
remote: {"true", "false"}
configuration: {"true", "false"}
dropped frames: {"true", "false"}
display timecode: {"true", "false"}
timeline position: {"true", "false"}
playrange: {"true", "false"}
cache: {"true", "false"}
dynamic range: {"true", "false"}
slate: {"true", "false"} 

Retrieving device information

The "device info" command returns information about the connected deck device:

device info 

The server will respond with:

204 device info:←
protocol version: {Version}←
model: {Model Name}←
unique id: {unique alphanumeric identifier}←
slot count: {number of storage slots}←
software version: {software version}← 

Retrieving slot information

The "slot info" command returns information about a slot. Without parameters, the command returns information for the currently selected slot:

slot info 

If a slot Id is specified, that slot will be queried:

slot info: slot id: {Slot ID} 

The server will respond with slot specific information:

202 slot info:←
slot id: {Slot ID}←
    status: {"empty", "mounting", "error", "mounted"}←
volume name: {Volume name}←
recording time: {recording time available in seconds}←
video format: {disk's default video format}←
blocked: {"true", "false"}← 

Asynchronous slot information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in slot state will generate a "502 slot info:" asynchronous message with the same parameters as the "202 slot info:" message.

Retrieving clip information

The "disk list" command returns the information for each playable clip on a given disk. Without parameters, the command returns information for the current active disk:

disk list 

If a slot id is specified, the disk in that slot will be queried:

disk list: slot id: {Slot ID} 

The server responds with the list of all playable clips on the disk in the format of: Index, name, formats, and duration in timecode:

206 disk list:←
slot id: {Slot ID}←
{clip index}: {name} {file format} {video format} {Duration timecode}←
{clip index}: {name} {file format} {video format} {Duration timecode}←
...
← 

Note that the clip index starts from 1.

Retrieving clip count

The "clips count" command returns the number of clips on the current timeline:

clips count ← 

The server responds with the number of clips:

214 clips count: ←
clip count: {Count}← 

Retrieving timeline information

The "clips get" command returns information for each available clip on the current timeline. Without parameters, the command returns information for all clips on timeline:

clips get 

The server responds with a list of clip IDs, names and timecodes:

205 clips info:←
clip count: {Count}←
{Clip ID}: {Name} {Start timecode} {Duration timecode}←
{Clip ID}: {Name} {Start timecode} {Duration timecode}←
... 

Retrieving transport information

The "transport info" command returns the state of the transport:

transport info 

The server responds with transport specific information:

208 transport info:
status: { "preview", "stopped", "play", "forward", "rewind", "jog", "shuttle", "record"}←
speed: {Play speed between -5000 and 5000 %}←
slot id: {Slot ID or "none"}←
clip id: {Clip ID or "none"}←
single clip: { "true", "false"}←
display timecode: {timecode}←
timecode: {timecode}←
video format: {Video format}←
loop: { "true", "false"}←
timeline: {n}←
input video format: {Video format"}←
dynamic range: { "off", "Rec709", "Rec2020_SDR", "HLG", "ST2084_300", "ST2084_500", "ST2084_800", "ST2084_1000", "ST2084_2000", "ST2084_4000", "ST2048" or "none"}← 

The "timecode" value is the timecode within the current timeline for playback or the clip for record. The "display timecode" is the timecode displayed on the front of the deck. The two timecodes will differ in some deck modes.

Asynchronous transport information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in transport state will generate a "508 transport info:" asynchronous message with the same parameters as the "208 transport info:" message.

Video Formats

The following video formats are currently supported on HyperDeck Studio:

NTSC, PAL, NTSCp, PALp

720p50, 720p5994, 720p60

1080p23976, 1080p24, 1080p25, 1080p2997, 1080p30

1080i50, 1080i5994, 1080i60

HyperDeck Studio Pro and Plus models support these 4k formats:

4Kp23976, 4Kp24, 4Kp25, 4Kp2997, 4Kp30

HyperDeck Studio 4K Pro adds support for the following 4k formats:

4Kp50, 4Kp5994, 4Kp60

Video format support may vary between models and software releases.

File Formats

All HyperDeck models currently support the following file formats:

H.264High_SDI

H.264High

H.264Medium

H.264Low

QuickTimeProResHQ

QuickTimeProRes

QuickTimeProResLT

QuickTimeProResProxy

QuickTimeDNxHD220x

DNxHD220x

QuickTimeDNxHD145

DNxHD145

QuickTimeDNxHD45

DNxHD45

HyperDeck Studio 4K Pro also supports the following file formats:

H.265High_SDI

H.265High

H.265Medium

H.265Low

QuickTimeDNxHR_HQX

DNxHR_HQX 4Kp60

QuickTimeDNxHR_SQ

DNxHR_SQ

QuickTimeDNxHR_LB

DNxHR_LB

Supported file formats may vary between models and software releases.

Querying and updating configuration information

The "configuration" command may be used to query the current configuration of the deck:

configuration 

The server returns the configuration of the deck:

211 configuration:
audio input: { "embedded", "XLR", "RCA" } 
audio mapping: {n} 
video input: { "SDI", "HDMI", "component", "composite" } 
file format: {format} 
audio codec: { "PCM", "AAC" } 
timecode input: { "external", "embedded", "preset", "clip" } 
timecode output: { "clip", "timeline" } 
timecode preference: { "default", "dropframe", "nondropframe" } 
timecode preset: {timecode} 
audio input channels: {n} 
record trigger: { "none", "recordbit", "timecoderun" } 
record prefix: {name} 
append timestamp: { "true", "false" } 

One or more configuration parameters may be specified to change the configuration of the deck.

To change the current video input:

configuration: video input: {"SDI", "HDMI", "component"} 

Valid video inputs may vary between models. To configure the current audio input:

configuration: audio input: {"embedded", "XLR", "RCA"} 

Valid audio inputs may vary between models.

To configure the current file format:

configuration: file format: {File format} 

Note that changes to the file format may require the deck to reset, which will cause the client connection to be closed. In such case, response code 213 will be returned (instead of 200) before the client connection is closed:

"213 deck rebooting" 

Asynchronous configuration information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in configuration will generate a "511 configuration:" asynchronous message with the same parameters as the "211 configuration:" message.

Selecting active slot and video format

The "slot select" command instructs the deck to switch to a specified slot, or/and to select a specified output video format.

To switch to a specified slot:

slot select: slot id: {slot ID} 

To select the output video format:

slot select: video format: {video format} 

Either or all slot select parameters may be specified. Note that selecting video format will result in a rescan of the disk to reconstruct the timeline with all clips of the specified video format.

Clearing the current timeline

The "clips clear" command instructs the deck to empty the current timeline:

clips clear 

The server responds with

200 ok← 

Adding a clip to the current timeline

The "clips add:" command instructs the deck to add a clip to the current timeline:

clips add: name: {"clip name"} 

The server responds with

200 ok← 

or in case of error

1xx {error description} 

Configuring the watchdog

The “watchdog” command instructs the deck to monitor the connected client and terminate the connection if the client is inactive for at least a specified period of time.

To configure the watchdog:

watchdog: period: {period in seconds} 

To avoid disconnection, the client must send a command to the server at least every [period] seconds. Note that if the period is set to 0 or less than 0, connection monitoring will be disabled.

ヘルプ

ヘルプライン

Blackmagic Design HyperDeck Studio 4K Pro - ヘルプライン - 1

natural_image Circular portrait photo of a smiling man in a dark shirt against a gray background (no text or symbols)

Chère cliente, cher client,

Supports de stockage 174

Carte SD 174

SSD 176

Disque externe 177

Formater les supports 179

natural_image Front view of a black audio workstation with multiple audio equipment panels and control knobs (no readable text or symbols)

HyperDeck Studio HD Pro et HyperDeck Studio 4K Pro

Blackmagic Design HyperDeck Studio 4K Pro - Chère cliente, cher client, - 1

natural_image Black audio recording device with playback controls and a digital display showing 00:00:36:11 (no readable text or symbols on device body)

Blackmagic Design HyperDeck Studio 4K Pro - Chère cliente, cher client, - 2

natural_image Black audio recording device with control buttons and a digital display showing time, timestamp, and preview (no readable text or symbols)

HyperDeck Studio HD Mini HyperDeck Studio HD Plus

natural_image Illustration of hands interacting with a device panel showing playback controls and a digital display (no text or symbols visible)

Brancher un support

natural_image Diagram of a rack-mounted server unit with ports and connectors, showing an orange arrow pointing to a component (no text or symbols present)

Timing de référence

Barre du support

Configurer Open Broadcaster

natural_image Front view illustration of a server rack unit with ports and control panel (no text or symbols)
natural_image Front view of a computer rack with indicator lights and ports (no text or symbols)
Command Reply No Remote Notes
0 - System Control
0x00 0x11 DeviceTypeRequestNTSC: 0xF0E0PAL: 0xF1E024P: 0xF2E0Enabled
1 - Slave Response
0x200x00StopAcknowledgeDisabled
0x200x01PlayAcknowledgeDisabled
0x200x02RecordAcknowledgeDisabled
0x200x04StandbyOffAcknowledgeDisabled
0x200x05StandbyOnAcknowledgeDisabled
0x200x0FEjectAcknowledgeDisabled
0x200x10FastFwdAcknowledgeDisabled
0x210x11JogFwd1AcknowledgeDisabled
0x220x11JogFwd2AcknowledgeDisabledTreated as N=1;Same as JogFwd1
0x210x12VarFwd1AcknowledgeDisabledUses ShuttleFwd1
0x220x12VarFwd2AcknowledgeDisabledTreated as N=1;Same as VarFwd1
0x210x13ShuttleFwd1AcknowledgeDisabled
0x220x13ShuttleFwd2AcknowledgeDisabledTreated as N=1;Same as ShuttleFwd1
0x200x20RewindAcknowledgeDisabled
0x210x21JogRev1AcknowledgeDisabled
0x220x21JogRev2AcknowledgeDisabledTreated as N=1;Same as JogRev1
0x210x22VarRev1AcknowledgeDisabledUses ShuttleRev1

Command Reply No Remote Notes

0x22 0x22 VarRev2 Acknowledge DisabledTreated as N=1;Same as VarRev1
0x210x23ShuttleRev1AcknowledgeDisabled
0x220x23ShuttleRev2AcknowledgeDisabledTreated as N=1;Same as ShuttleRev1
0x200x30PrerollAcknowledgeDisabled
0x24 0x31 CueData Acknowledge Disabled
0x200x34SyncPlayAcknowledgeDisabled
0x200x40PreviewAcknowledgeDisabledStatus bits are set
0x200x41ReviewAcknowledgeDisabledStatus bits are set
0x200x43OutpointPreviewAcknowledgeDisabled
0x220x5CDMCSetFwdAcknowledgeDisabled
0x220x5DDMCSetRevAcknowledgeDisabled
0x200x60FullEEOffAcknowledgeDisabled
0x200x61FullEEOnAcknowledgeDisabled
0x200x63SelectEEOnAcknowledgeDisabled
4 - Preset/Select Control
0x400x10InEntryAcknowledgeDisabled
0x400x11OutEntryAcknowledgeDisabled
0x440x14InDataPresetAcknowledgeDisabled
0x440x15OutDataPresetAcknowledgeDisabled
0x400x18InShift+AcknowledgeDisabled
0x400x19InShift-AcknowledgeDisabled
0x400x1AOutShift+AcknowledgeDisabled
0x400x1BOutShift-AcknowledgeDisabled
0x400x20InResetAcknowledgeDisabled
0x400x21OutResetAcknowledgeDisabled
0x400x22AlnResetAcknowledgeDisabled
0x400x23AOutResetAcknowledgeDisabled
0x440x31PrerollPresetAcknowledgeDisabled
0x400x40AutoModeOffAcknowledgeDisabledignored, Status bit remembered
0x400x41AutoModeOnAcknowledgeDisabledignored, Status bit remembered
0x410x37InputCheckAcknowledgeDisabled

Command Reply No Remote Notes
6 - Sense Request

0x61 0x0A TimeCodeGenSense — —
0x61 0x0C CurrentTimeSense — —
0x60 0x10 InDataSense InData Enabled
0x600x11OutDataSenseOutDataEnabled
0x600x12AlnDataSenseAlnDataEnabled
0x600x13AOutDataSenseAOutDataEnabled
0x610x20StatusSenseStatusDataEnabled
0x600x2BRemainTimeSenseRemainTimeDataEnabled
0x600x2ESpeedSenseSpeedDataEnabled
0x600x31PrerollTimeSensePreRollTimeDataEnabled
0x600x36TimerModeSenseTimerModeDataEnabled
0x600x3ERecordInhibitSenseRecordInhibitStatusEnabled

7 - Sense Reply

0x780x00Timer1DataCurrent Time and 00:00:00:00
0x780x04LTCUserBitsTimeDataCurrent Time and 00:00:00:00
0x780x06VITCUserBitsTimeDataCurrent Time and 00:00:00:00
0x740x06VITCTimeDataCurrent Time
0x740x07UserBitsVITCTimeData00:00:00:00
0x740x08GenTCDATACurrent Time
0x780x08GenTCUBDataCurrent Time and 00:00:00:00
0x740x09GenUBData00:00:00:00
0x74 0x10 InData— —
0x740x11OutData
0x740x12AlnData
0x740x13AOutData
0x740x14CorrectedLTCTimeDataCurrent Time
0x700x20StatusDataPlease see “Status Bits” sheet: Limited to 9 bytes of status, silently truncated
0x760x2BRemainTimeData
0x710x2ESpeedData
0x740x31PrerollTimeData
0x710x36TimerModeDataReturns 0 (TimeCode)
0x720x3ERecordInhibitStatus

Command Reply No Remote Notes
A - Advanced Media Protocol

0xA10x01AutoSkipAcknowledgeDisabled8-bit signed number of clips to skip from current clip
0xAX0x15ListNextIDIDListingEnabledwhen x = 0 single clip request when x = 1, # clips can be specified in the send data
0x200x29ClearPlaylistAcknowledgeDisabled
0x410x42SetPlaybackLoopAcknowledgeDisabledBit 0 loop mode enable, 0=false 1=trueBit 1 is single clip/timeline0=single clip1=timeline
0x410x44SetStopModeAcknowledgeDisabled0 = Off1 = Freeze on last frame2 = Freeze on next clip3 = Show black
0x4f0x16AppendPresetAcknowledgeDisabled2 Bytes for the length N of the clip nameN Bytes for each character of the clip name4 Byte in point timecode (format is FFSSMMHH)4 Byte out point timecode (format is FFSSMMHH)

Blackmagic Extensions

0x820x02BMDSeekToTimelinePositionAcknowledgeDisabled16-bit little endian fractional position [0..65535]
0x810x03BMDSeekRelativeClipAcknowledgeDisabledOne-byte signed integer, which is the number of clips to skip (negative for backwards).
Variables
Cassette OutSet if no SSD is present
LocalSet if Remote is disabled (local control)
StandbySet if a disk is available
DirectionClear if playback is forwarding, set if playback is reversing
StillSet if playback is paused, or if in input preview mode
Auto ModeSet if in Auto Mode
Select EE, Full EESet if in input preview mode
Lamp Still/Fwd/RevSet according to playback speed and direction
Near EOTSet if total space left on available SSDs is less than 3 minutes
EOTSet if total space left on available SSDs is less than 30 seconds
Others
Cue Complete (byte 2, bit 0)Always 1: Cue requests are always instantaneous
HyperDeck Serial RS-422 Protocol
ProtocolBased on Sony 9-pin protocol
InterfaceBaud rate 38.4 Kbps
1 start bit
8 data bits
1 stop bit
1 parity bit
Odd parity
natural_image Front view of a 12G3D1 computer interface panel showing ports, buttons, and memory slots (no text or symbols beyond branding)
Command Command Description
help or ? Provides help text on all commands and parameters
commands return commands in XML format
device info return device information
disk list query clip list on active disk
disk list: slot id: {n} query clip list on disk in slot {n}
quit disconnect ethernet control
ping check device is responding
preview: enable: {true/false} switch to preview or output
play play from current timecode
play: speed: {-5000 to 5000} play at specific speed
play: loop: {true/false} play in loops or stop-at-end
play: single clip: {true/false} play current clip or all clips
playrange query playrange setting
playrange set: clip id: {n}set play range to play clip {n} only
playrange set: clip id: {n} count: {m}set play range to {m} clips starting from clip {n}
playrange set: in: {inT} out: {outT}set play range to play between:- timecode {inT} and timecode {outT}
playrange set: timeline in: {in} timeline out:{out}set play range in units of frames between:- timeline position {in} and position {out} clear/reset play range setting
playrange clearclear/reset play range setting
play on startupquery unit play on startup state
play on startup: enable: {true/false}enable or disable play on startup
play on startup: single clip: {true/false}play single clip or all clips on startup
play option query play options
play option: stop mode:{lastframe/nextframe/black}set output frame when playback stops
recordrecord from current input
record: name: {name}record named clip
record spillspill current recording to next slot

Command Command Description

record: spill: slot id: {n}spill current recording to specified slotuse current id to spill to same slot
stop stop playback or recording
clips count query number of clips on timeline
clips get query all timeline clips
clips get: clip id: {n} query a timeline clip info
clips get: clip id: {n} count: {m} query m clips starting from n
clips get: version: {1/2}query clip info using specified output version:version 1: is: name startT durationversion 2: id: startT duration inT outT name
clips add: name: {name} append a clip to timeline
clips add: clip id: {n} name: {name} insert clip before existing clip {n}
clips add: in: {inT} out: {outT} name: {name} append the {inT} to {outT} portion of clip
clips remove: clip id: {n}remove clip {n} from the timeline(invalidates clip ids following clip {n})
clips clear empty timeline clip list
transport info query current activity
slot info query active slot
slot info: slot id: {n} query slot {n}
slot select: slot id: {n} switch to specified slot
slot select: video format: {format}load clips of specified format
slot unblockunblock active slot
slot unblock: slot id: {n}unblock slot {n}
cache infoquery cache status
dynamic rangequery dynamic range settings
dynamic range: playback override:{off/Rec709/Rec2020_SDR/HLG/ST2084_300/ST2084_500/ST2084_800/ST2084_1000/ST2084_2000/ST2084_4000/ST2084set playback dynamic range override
dynamic range: record override:{off/Rec709/Rec2020_SDR/HLG/ST2084_300/ST2084_500/ST2084_800/ST2084_1000/ST2084_2000/ST2084_4000/ST2048}set record dynamic range override
notifyquery notification status
notify: remote: {true/false}set remote notifications
notify: transport: {true/false}set transport notifications
notify: slot: {true/false}set slot notifications
notify: configuration: {true/false}set configuration notifications
notify: dropped frames: {true/false}set dropped frames notifications
notify: display timecode: {true/false}set display timecode notifications

Command Command Description

notify: timeline position: {true/false} set playback timeline position notifications
notify: playrange: {true/false} set playrange notifications
notify: cache: {true/false} set cache notifications
notify: dynamic range: {true/false} set dynamic range settings notifications
notify: slate: {true/false} set digital slate notifications
goto: clip id: {start/end} goto first clip or last clip
goto: clip id: {n} goto clip id {n}
goto: clip id: +{n} go forward {n} clips
goto: clip id: -(n) go backward {n} clips
goto: clip: {n} goto frame position {n} within current clip
goto: clip: +{n} go forward {n} frames within current clip
goto: clip: -(n) go backward {n} frames within current clip
goto: clip: {start/end}goto start or end of clip
goto: timeline: {n}goto frame position {n} within timeline
goto: timeline: +{n}o forward {n} frames within timeline
goto: timeline: -(n)go backward {n} frames within timeline
goto: timeline: {start/end}goto start or end of timeline
goto: timecode: {timecode}goto specified timecode
goto: timecode: +{timecode}go forward {timecode} duration
goto: timecode: -(timecode}go backward {timecode} duration
goto: slot id: {n}goto slot id {n}
jog: timecode: {timecode}jog to timecode
jog: timecode: +{timecode}jog forward {timecode} duration
jog: timecode: -(timecode}jog backward {timecode} duration
shuttle: speed: [-5000 to 5000]shuttle with speed
remotequery unit remote control state
remote: enable: {true/false}enable or disable remote control
remote: override: {true/false}session override remote control
configurationquery configuration settings
configuration: video input: SDIswitch to SDI input
configuration: video input: HDMIswitch to HDMI input
configuration: video input: componentswitch to component input
configuration: audio input: embeddedcapture embedded audio
configuration: audio input: XLRcapture XLR audio
configuration: audio input: RCAcapture RCA audio
configuration: file format: {format}switch to specific file format
configuration: audio codec: PCMswitch to PCM audio
configuration: audio codec: AACswitch to AAC audio

Command Command Description

configuration: timecode input:{external/embedded/preset/clip}change the timecode input
configuration: timecode output:{clip/timeline/internal}change the timecode output
configuration: timecode preference:{default/dropframe/nondropframe}whether or not to use drop frame timecodes when not otherwise specified
configuration: timecode preset:{timecode}set the timecode preset
configuration: audio input channels: {n} set the number of audio channels recorded to {n}
configuration: record trigger:{none/recordbit/timecoderun}change the record trigger
configuration: record prefix: {name} set the record prefix name (supports UTF-8 name)
configuration: append timestamp:{true/false}append timestamp to recorded filename
configuration: xlr input id: {n} xlr type:{line/mic}configure xlr input typemultiple xlr inputs can be configured in a single command
configuration: genlock input resync:{true/false}enable or disable genlock input resync
uptime return time since last boot
format: prepare: {format} prepare a disk formatting operation to filesystem {format}
format: confirm: {token} perform a pre-prepared formatting operation using token
identify: enable: {true/false} identify the device
watchdog: period: {period in seconds} clientconnection timeout
reboot reboot device
slate clips slate clips information
slate project slate project information
slate project:←camera: {index}←set camera index e.g. A

Command Combinations

You can combine the parameters into a single command, for example:

play: speed: 200 loop: true single clip: true

Or for configuration:

configuration: video input: SDI audio input: XLR

Or to switch to the second disk, but only play NTSC clips:

slot select: slot id: 2 video format: NTSC

Using XML

While you can use the Terminal to talk to HyperDeck, if you are writing software, you can use XML to confirm the existence of a specific command based on the firmware of the HyperDeck you are communicating with. This helps your software user interface adjust to the capabilities of the specific HyperDeck model and software version.

Protocol Details

Connection

The HyperDeck Ethernet server listens on TCP port 9993.

Basic syntax

The HyperDeck protocol is a line oriented text protocol. Lines from the server will be separated by an ascii CR LF sequence. Messages from the client may be separated by LF or CR LF.

New lines are represented in this document as a "←" symbol.

Single line command syntax

Command parameters are usually optional. A command with no parameters is terminated with a new line:

{Command name} 

If parameters are specified, the command name is followed by a colon, then pairs of parameter names and values. Each parameter name is terminated with a colon character:

{Command name}: {Parameter}: {Value} {Parameter}: {Value} ... 

Multiline command syntax

The HyperDeck protocol also supports an equivalent multiline syntax where each parameter-value pair is entered on a new line. E.g.

{Command name}:←
{Pa ra m e t e r}: { Va lu e}←
{Pa ra m e t e r}: { Va lu e}← 

Response syntax

Simple responses from the server consist of a three digit response code and descriptive text terminated by a new line:

{Response code} {Response text} 

If a response carries parameters, the response text is terminated with a colon, and parameter name and value pairs follow on subsequent lines until a blank line is returned:

{Response code} {Response text}:←
{Pa ra m e t e r}: { Va lu e}←
{Pa ra m e t e r}: { Va lu e}←
...
← 

Successful response codes

A simple acknowledgement of a command is indicated with a response code of 200:

200 ok← 

Other successful responses carry parameters and are indicated with response codes in the range of 201 to 299.

Failure response codes

Failure responses to commands are indicated with response codes in the range of 100 to 199:

100 syntax error
101 unsupported parameter
102 invalid value
103 unsupported
104 disk full
105 no disk
106 disk error
107 timeline empty
108 internal error
109 out of range
110 no input
111 remote control disabled
112 clip not found
120 connection rejected
150 invalid state
151 invalid codec
160 invalid format
161 invalid token
162 format not prepared
163 parameterized single line command not supported 

Asynchronous response codes

The server may return asynchronous messages at any time. These responses are indicated with response codes in the range of 500 to 599:

5xx {Response Text}:←
{Pa ra m e t e r}: {Va lu e}←
{Pa ra m e t e r}: {Va lu e}← 

Connection response

On connection, an asynchronous message will be delivered:

500 connection info:←
protocol version: {Version}←
model: {Model Name}← 

Connection rejection

Only one client may connect to the server at a time. If other clients attempt to connect concurrently, they will receive an error and be disconnected:

120 connection rejected 

Timecode syntax

Timecodes are expressed as non-drop-frame timecode in the format:

HH:MM:SS:FF

Handling of deck "remote" state

The “remote” command may be used to enable or disable the remote control of the deck. Any attempt to change the deck state over ethernet while remote access is disabled will generate an error:

111 remote control disabled

To enable or disable remote control:

remote: enable: {"true", "false"} 

The current remote control state may be overridden allowing remote access over ethernet irrespective of the current remote control state:

remote: override: {"true", "false"} 

The override state is only valid for the currently connected ethernet client and only while the connection remains open.

The “remote” command may be used to query the remote control state of the deck by specifying no parameters:

remote 

The deck will return the current remote control state:

210 remote info:←
enabled: {"true", "false"}
override: {"true", "false"}
←

Asynchronous remote control information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in remote state will generate a "510 remote info:" asynchronous message with the same parameters as the "210 remote info:" message.

Closing connection

The "quit" command instructs the server to cleanly shut down the connection:

quit 

Checking connection status

The "ping" command has no function other than to determine if the server is responding:

ping← 

Getting help

The "help" or "?" commands return human readable help text describing all available commands and parameters:

help 

Or:

?← 

The server will respond with a list of all supported commands:

201 help:
{Help Tex t}
{Help Tex t} 

Switching to preview mode

The "preview" command instructs the deck to switch between preview mode and output mode:

preview: enable: {"true", "false"} 

Playback will be stopped when the deck is switched to preview mode. Capturing will be stopped when the deck is switched to output mode.

Controlling device playback

The "play" command instructs the deck to start playing:

play← 

The play command accepts a number of parameters which may be used together in most combinations.

By default, the deck will play all remaining clips on the timeline then stop.

The "single clip" parameter may be used to override this behavior:

play: single clip: {"true", "false"} 

By default, the deck will play at normal (100%) speed. An alternate speed may be specified in percentage between -1600 and 1600:

play: speed: {% normal speed} 

By default, the deck will stop playing when it reaches to the end of the timeline. The "loop" parameter may be used to override this behavior:

play: loop: {"true", "false"} 

The “playrange” command instructs the deck to play all the clips. To override this behavior; and select a particular clip:

playrange set: clip id: {Clip ID} 

To only play a certain timecode range:

playrange set: in: {in timecode} out: {out timecode} 

To clear a set playrange and return to the default value:

playrange clear 

The “play on startup command” instructs the deck on what action to take on startup. By default, the deck will not play. Use the “enable” command to start playback after each power up.

play on startup: enable {"true", "false"} 

By default, the unit will play back all clips on startup. Use the "single clip" command to override.

play on startup: single clip: {"true", "false"} 

Stopping deck operation

The "stop" command instructs the deck to stop the current playback or capture:

stop← 

Changing timeline position

The "goto" command instructs the deck to switch to playback mode and change its position within the timeline.

To go to the start of a specific clip:

goto: clip id: {Clip ID} 

To move forward/back {count} clips from the current clip on the current timeline:

goto: clip id: +/- {count} 

Note that if the resultant clip id goes beyond the first or last clip on timeline, it will be clamp at the first or last clip.

To go to the start or end of the current clip:

goto: clip: {"start", "end"} 

To go to the start of the first clip or the end of the last clip:

goto: timeline: { "start", "end"} 

To go to a specified timecode:

goto: timecode: {timecode} 

To move forward or back a specified duration in timecode:

goto: timecode: {“+”, “-”} {duration in timecode} 

To specify between slot 1 and slot 2:

goto: slot id: {Slot ID} 

Note that only one parameter/value pair is allowed for each goto command.

Enumerating supported commands and parameters

The "commands" command returns the supported commands:

commands 

The command list is returned in a computer readable XML format:

212 commands:
<commands>
<command name="..."><parameter name="..."/>...</command>
<command name="..."><parameter name="..."/>...</command>
...
</commands> 

More XML tokens and parameters may be added in later releases.

Controlling asynchronous notifications

The "notify" command may be used to enable or disable asynchronous notifications from the server.

To enable or disable transport notifications:

notify: transport: { "true", "false" } 

To enable or disable slot notifications:

notify: slot: {"true", "false"} 

To enable or disable remote notifications:

notify: remote: {"true", "false"} 

To enable or disable configuration notifications:

notify: configuration: {"true", "false"} 

Multiple parameters may be specified. If no parameters are specified, the server returns the current state of all notifications:

209 notify:←
transport: { "true", "false" }←
slot: { "true", "false" }←
remote: { "true", "false" }←
configuration: { "true", "false" }←
dropped frames: { "true", "false" }←
display timecode: { "true", "false" }←
timeline position: { "true", "false" }←
playrange: { "true", "false" }←
cache: { "true", "false" }←
dynamic range: { "true", "false" }←
slate: { "true", "false" }← 

Retrieving device information

The "device info" command returns information about the connected deck device:

device info 

The server will respond with:

204 device info:←
protocol version: {Version}←
model: {Model Name}←
unique id: {unique alphanumeric identifier}←
slot count: {number of storage slots}←
software version: {software version}← 

Retrieving slot information

The "slot info" command returns information about a slot. Without parameters, the command returns information for the currently selected slot:

slot info 

If a slot id is specified, that slot will be queried:

slot info: slot id: {Slot ID} 

The server will respond with slot specific information:

202 slot info:←
slot id: {Slot ID}←
    status: {"empty", "mounting", "error", "mounted"}←
volume name: {Volume name}←
recording time: {recording time available in seconds}←
video format: {disk's default video format}←
blocked: {"true", "false"}← 

Asynchronous slot information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in slot state will generate a "502 slot info:" asynchronous message with the same parameters as the "202 slot info:" message.

Retrieving clip information

The "disk list" command returns the information for each playable clip on a given disk. Without parameters, the command returns information for the current active disk:

disk list 

If a slot id is specified, the disk in that slot will be queried:

disk list: slot id: {Slot ID} 

The server responds with the list of all playable clips on the disk in the format of: Index, name, formats, and duration in timecode:

206 disk list:←
slot id: {Slot ID}←
{clip index}: {name} {file format} {video format} {Duration timecode}←
{clip index}: {name} {file format} {video format} {Duration timecode}←
...
← 

Note that the clip index starts from 1.

Retrieving clip count

The "clips count" command returns the number of clips on the current timeline:

clips count ← 

The server responds with the number of clips:

214 clips count: ←
clip count: {Count}← 

Retrieving timeline information

The "clips get" command returns information for each available clip on the current timeline. Without parameters, the command returns information for all clips on timeline:

clips get← 

The server responds with a list of clip IDs, names and timecodes:

205 clips info:←
clip count: {Count}←
{Clip ID}: {Name} {Start timecode} {Duration timecode}←
{Clip ID}: {Name} {Start timecode} {Duration timecode}←
... 

Retrieving transport Information

The "transport info" command returns the state of the transport:

transport info ← 

The server responds with transport specific information:

208 transport info:
status: { "preview", "stopped", "play", "forward", "rewind", "jog", "shuttle","record"}←
speed: {Play speed between -5000 and 5000 %}←
slot id: {Slot ID or "none"}←
clip id: {Clip ID or "none"}←
single clip: { "true", "false"}←
display timecode: {timecode}←
timecode: {timecode}←
video format: {Video format}←
loop: { "true", "false"}←
timeline: {n}←
input video format: {Video format"}←
dynamic range: { "off", "Rec709", "Rec2020_SDR", "HLG", "ST2084_300", "ST2084_500", "ST2084_800", "ST2084_1000", "ST2084_2000", "ST2084_4000", "ST2048" or "none"}← 

The "timecode" value is the timecode within the current timeline for playback or the clip for record. The "display timecode" is the timecode displayed on the front of the deck. The two timecodes will differ in some deck modes.

Asynchronous transport information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in transport state will generate a "508 transport info:" asynchronous message with the same parameters as the "208 transport info:" message.

Video Formats

The following video formats are currently supported on HyperDeck Studio:

NTSC, PAL, NTSCp, PALp

720p50, 720p5994, 720p60

1080p23976, 1080p24, 1080p25, 1080p2997, 1080p30

1080i50, 1080i5994, 1080i60

HyperDeck Studio Pro and Plus models support these 4k formats:

4Kp23976, 4Kp24, 4Kp25, 4Kp2997, 4Kp30

HyperDeck Studio 4K Pro adds support for the following 4k formats:

4Kp50, 4Kp5994, 4Kp60

Video format support may vary between models and software releases.

File Formats

All HyperDeck models currently support the following file formats:

H.264High_SDI

H.264High

H.264Medium

H.264Low

QuickTimeProResHQ

QuickTimeProRes

QuickTimeProResLT

QuickTimeProResProxy

QuickTimeDNxHD220x

DNxHD220x

QuickTimeDNxHD145

DNxHD145

QuickTimeDNxHD45

DNxHD45

HyperDeck Studio 4K Pro also supports the following file formats:

H.265High_SDI

H.265High

H.265Medium

H.265Low

QuickTimeDNxHR_HQX

DNxHR_HQX 4Kp60

QuickTimeDNxHR_SQ

DNxHR_SQ

QuickTimeDNxHR_LB

DNxHR_LB

Supported file formats may vary between models and software releases.

Querying and updating configuration information

The "configuration" command may be used to query the current configuration of the deck:

configuration 

The server returns the configuration of the deck:

211 configuration:
audio input: { "embedded", "XLR", "RCA" }←
audio mapping: {n}←
video input: { "SDI", "HDMI", "component", "composite" }←
file format: {format}←
audio codec: { "PCM", "AAC" }←
timecode input: { "external", "embedded", "preset", "clip" }←
timecode output: { "clip", "timeline" }←
timecode preference: { "default", "dropframe", "nondropframe" }←
timecode preset: {timecode}←
audio input channels: {n}←
record trigger: { "none", "recordbit", "timecoderun" }←
record prefix: {name}←
append timestamp: { "true", "false" }← 

One or more configuration parameters may be specified to change the configuration of the deck.

To change the current video input:

configuration: video input: {"SDI", "HDMI", "component"} 

Valid video inputs may vary between models. To configure the current audio input:

configuration: audio input: {"embedded", "XLR", "RCA"} 

Valid audio inputs may vary between models.

To configure the current file format:

configuration: file format: {File format} 

Note that changes to the file format may require the deck to reset, which will cause the client connection to be closed. In such case, response code 213 will be returned (instead of 200) before the client connection is closed:

"213 deck rebooting" 

Asynchronous configuration information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in configuration will generate a "511 configuration:" asynchronous message with the same parameters as the "211 configuration:" message.

Selecting active slot and video format

The "slot select" command instructs the deck to switch to a specified slot, or/and to select a specified output video format.

To switch to a specified slot:

slot select: slot id: {slot ID} 

To select the output video format:

slot select: video format: {video format} 

Either or all slot select parameters may be specified. Note that selecting video format will result in a rescan of the disk to reconstruct the timeline with all clips of the specified video format.

Clearing the current timeline

The "clips clear" command instructs the deck to empty the current timeline:

clips clear 

The server responds with

200 ok← 

Adding a clip to the current timeline

The "clips add:" command instructs the deck to add a clip to the current timeline:

clips add: name: {"clip name"} 

The server responds with

200 ok← 

or in case of error

1xx {error description} 

Configuring the watchdog

The “watchdog” command instructs the deck to monitor the connected client and terminate the connection if the client is inactive for at least a specified period of time.

To configure the watchdog:

watchdog: period: {period in seconds} 

To avoid disconnection, the client must send a command to the server at least every {period} seconds. Note that if the period is set to 0 or less than 0, connection monitoring will be disabled.

Assistance

Blackmagic Design HyperDeck Studio 4K Pro - Assistance - 1

natural_image Circular portrait photo of a smiling man in a dark shirt against a gray background (no text or symbols)

Willkommen!

CEO Blackmagic Design

Inhaltsverzeichnis

natural_image Front view of a black audio workstation with multiple video player channels and control knobs (no readable text or symbols)
natural_image Black audio recording device with playback controls and a digital display showing time (no readable text or symbols)

Blackmagic Design HyperDeck Studio 4K Pro - Inhaltsverzeichnis - 1

natural_image Black audio recording device with control panel and display screen (no readable text or symbols)

HyperDeck Studio Mini HyperDeck Studio HD Plus

natural_image Illustration of hands interacting with a device panel and control buttons (no text or symbols visible)
natural_image Diagram of a server rack with ports and an orange arrow indicating a specific component (no text or symbols present)

Menü „Remote“

Datenträgerbalken

natural_image Illustration of a server rack unit with ports and control panel (no text or symbols)
Receive(−)Receive(+)Transmit(−)Transmit(+)GroundPins
2 7 8 31, 4, 6, 9
natural_image Front view of a computer rack with indicator lights and ports (no text or symbols)
Command Reply No Remote Notes
0 - System Control
0x00 0x11 DeviceTypeRequestNTSC: 0xF0E0PAL: 0xF1E024P: 0xF2E0Enabled
1 - Slave Response
0x200x00StopAcknowledgeDisabled
0x200x01PlayAcknowledgeDisabled
0x200x02RecordAcknowledgeDisabled
0x200x04StandbyOffAcknowledgeDisabled
0x200x05StandbyOnAcknowledgeDisabled
0x200x0FEjectAcknowledgeDisabled
0x200x10FastFwdAcknowledgeDisabled
0x210x11JogFwd1AcknowledgeDisabled
0x220x11JogFwd2AcknowledgeDisabledTreated as N=1;Same as JogFwd1
0x210x12VarFwd1AcknowledgeDisabledUses ShuttleFwd1
0x220x12VarFwd2AcknowledgeDisabledTreated as N=1;Same as VarFwd1
0x210x13ShuttleFwd1AcknowledgeDisabled
0x220x13ShuttleFwd2AcknowledgeDisabledTreated as N=1;Same as ShuttleFwd1
0x200x20RewindAcknowledgeDisabled
0x210x21JogRev1AcknowledgeDisabled
0x220x21JogRev2AcknowledgeDisabledTreated as N=1;Same as JogRev1
0x210x22VarRev1AcknowledgeDisabledUses ShuttleRev1

Command Reply No Remote Notes

0x22 0x22 VarRev2 Acknowledge DisabledTreated as N=1;Same as VarRev1
0x210x23ShuttleRev1AcknowledgeDisabled
0x220x23ShuttleRev2AcknowledgeDisabledTreated as N=1;Same as ShuttleRev1
0x200x30PrerollAcknowledgeDisabled
0x24 0x31 CueData Acknowledge Disabled
0x200x34SyncPlayAcknowledgeDisabled
0x200x40PreviewAcknowledgeDisabledStatus bits are set
0x200x41ReviewAcknowledgeDisabledStatus bits are set
0x200x43OutpointPreviewAcknowledgeDisabled
0x220x5CDMCSetFwdAcknowledgeDisabled
0x220x5DDMCSetRevAcknowledgeDisabled
0x200x60FullEEOffAcknowledgeDisabled
0x200x61FullEEOnAcknowledgeDisabled
0x200x63SelectEEOnAcknowledgeDisabled
4 - Preset/Select Control
0x400x10InEntryAcknowledgeDisabled
0x400x11OutEntryAcknowledgeDisabled
0x440x14InDataPresetAcknowledgeDisabled
0x440x15OutDataPresetAcknowledgeDisabled
0x400x18InShift+AcknowledgeDisabled
0x400x19InShift-AcknowledgeDisabled
0x400x1AOutShift+AcknowledgeDisabled
0x400x1BOutShift-AcknowledgeDisabled
0x400x20InResetAcknowledgeDisabled
0x400x21OutResetAcknowledgeDisabled
0x400x22AlnResetAcknowledgeDisabled
0x400x23AOutResetAcknowledgeDisabled
0x440x31PrerollPresetAcknowledgeDisabled
0x400x40AutoModeOffAcknowledgeDisabledignored, Status bit remembered
0x400x41AutoModeOnAcknowledgeDisabledignored, Status bit remembered
0x410x37InputCheckAcknowledgeDisabled

Command Reply No Remote Notes
6 - Sense Request

0x61 0x0A TimeCodeGenSense — —
0x61 0x0C CurrentTimeSense — —
0x60 0x10 InDataSense InData Enabled
0x600x11OutDataSenseOutDataEnabled
0x600x12AlnDataSenseAlnDataEnabled
0x600x13AOutDataSenseAOutDataEnabled
0x610x20StatusSenseStatusDataEnabled
0x600x2BRemainTimeSenseRemainTimeDataEnabled
0x600x2ESpeedSenseSpeedDataEnabled
0x600x31PrerollTimeSensePreRollTimeDataEnabled
0x600x36TimerModeSenseTimerModeDataEnabled
0x600x3ERecordInhibitSenseRecordInhibitStatusEnabled

7 - Sense Reply

0x780x00Timer1DataCurrent Time and 00:00:00:00
0x780x04LTCUserBitsTimeDataCurrent Time and 00:00:00:00
0x780x06VITCUserBitsTimeDataCurrent Time and 00:00:00:00
0x740x06VITCTimeDataCurrent Time
0x740x07UserBitsVITCTimeData00:00:00:00
0x740x08GenTCDATACurrent Time
0x780x08GenTCUBDataCurrent Time and 00:00:00:00
0x740x09GenUBData00:00:00:00
0x74 0x10 InData— —
0x740x11OutData
0x740x12AlnData
0x740x13AOutData
0x740x14CorrectedLTCTimeDataCurrent Time
0x700x20StatusDataPlease see “Status Bits” sheet: Limited to 9 bytes of status, silently truncated
0x760x2BRemainTimeData
0x710x2ESpeedData
0x740x31PrerollTimeData
0x710x36TimerModeDataReturns 0 (TimeCode)
0x720x3ERecordInhibitStatus

Command Reply No Remote Notes
A - Advanced Media Protocol

0xA10x01AutoSkipAcknowledgeDisabled8-bit signed number of clips to skip from current clip
0xAX0x15ListNextIDIDListingEnabledwhen x = 0 single clip request when x = 1, # clips can be specified in the send data
0x200x29ClearPlaylistAcknowledgeDisabled
0x410x42SetPlaybackLoopAcknowledgeDisabledBit 0 loop mode enable, 0=false 1=trueBit 1 is single clip/timeline0=single clip1=timeline
0x410x44SetStopModeAcknowledgeDisabled0 = Off1 = Freeze on last frame2 = Freeze on next clip3 = Show black
0x4f0x16AppendPresetAcknowledgeDisabled2 Bytes for the length N of the clip nameN Bytes for each character of the clip name4 Byte in point timecode (format is FFSSMMHH)4 Byte out point timecode (format is FFSSMMHH)

Blackmagic Extensions

0x820x02BMDSeekToTimelinePositionAcknowledgeDisabled16-bit little endian fractional position [0..65535]
0x810x03BMDSeekRelativeClipAcknowledgeDisabledOne-byte signed integer, which is the number of clips to skip (negative for backwards).
Variables
Cassette OutSet if no SSD is present
LocalSet if Remote is disabled (local control)
StandbySet if a disk is available
DirectionClear if playback is forwarding, set if playback is reversing
StillSet if playback is paused, or if in input preview mode
Auto ModeSet if in Auto Mode
Select EE, Full EESet if in input preview mode
Lamp Still/Fwd/RevSet according to playback speed and direction
Near EOTSet if total space left on available SSDs is less than 3 minutes
EOTSet if total space left on available SSDs is less than 30 seconds
Others
Cue Complete (byte 2, bit 0)Always 1: Cue requests are always instantaneous
HyperDeck Serial RS-422 Protocol
ProtocolBased on Sony 9-pin protocol
InterfaceBaud rate 38.4 Kbps
1 start bit
8 data bits
1 stop bit
1 parity bit
Odd parity
natural_image Front view of a server rack with I2G SDJ branding and control buttons (no text or symbols on main body)
Command Command Description
help or ? Provides help text on all commands and parameters
commands return commands in XML format
device info return device information
disk list query clip list on active disk
disk list: slot id: {n} query clip list on disk in slot {n}
quit disconnect ethernet control
ping check device is responding
preview: enable: {true/false} switch to preview or output
play play from current timecode
play: speed: {-5000 to 5000} play at specific speed
play: loop: {true/false} play in loops or stop-at-end
play: single clip: {true/false} play current clip or all clips
playrange query playrange setting
playrange set: clip id: {n}set play range to play clip {n} only
playrange set: clip id: {n} count: {m}set play range to {m} clips starting from clip {n}
playrange set: in: {inT} out: {outT}set play range to play between:- timecode {inT} and timecode {outT}
playrange set: timeline in: {in} timeline out:{out}set play range in units of frames between:- timeline position {in} and position {out} clear/reset play range setting
playrange clearclear/reset play range setting
play on startupquery unit play on startup state
play on startup: enable: {true/false}enable or disable play on startup
play on startup: single clip: {true/false}play single clip or all clips on startup
play option query play options
play option: stop mode:{lastframe/nextframe/black}set output frame when playback stops
recordrecord from current input
record: name: {name}record named clip
record spillspill current recording to next slot

Command Command Description

record: spill: slot id: {n}spill current recording to specified slotuse current id to spill to same slot
stop stop playback or recording
clips count query number of clips on timeline
clips get query all timeline clips
clips get: clip id: {n} query a timeline clip info
clips get: clip id: {n} count: {m} query m clips starting from n
clips get: version: {1/2}query clip info using specified output version:version 1: is: name startT durationversion 2: id: startT duration inT outT name
clips add: name: {name} append a clip to timeline
clips add: clip id: {n} name: {name} insert clip before existing clip {n}
clips add: in: {inT} out: {outT} name: {name} append the {inT} to {outT} portion of clip
clips remove: clip id: {n}remove clip {n} from the timeline(invalidates clip ids following clip {n})
clips clear empty timeline clip list
transport info query current activity
slot info query active slot
slot info: slot id: {n} query slot {n}
slot select: slot id: {n} switch to specified slot
slot select: video format: {format}load clips of specified format
slot unblockunblock active slot
slot unblock: slot id: {n}unblock slot {n}
cache infoquery cache status
dynamic rangequery dynamic range settings
dynamic range: playback override:{off/Rec709/Rec2020_SDR/HLG/ST2084_300/ST2084_500/ST2084_800/ST2084_1000/ST2084_2000/ST2084_4000/ST2084set playback dynamic range override
dynamic range: record override:{off/Rec709/Rec2020_SDR/HLG/ST2084_300/ST2084_500/ST2084_800/ST2084_1000/ST2084_2000/ST2084_4000/ST2048}set record dynamic range override
notifyquery notification status
notify: remote: {true/false}set remote notifications
notify: transport: {true/false}set transport notifications
notify: slot: {true/false}set slot notifications
notify: configuration: {true/false}set configuration notifications
notify: dropped frames: {true/false}set dropped frames notifications
notify: display timecode: {true/false}set display timecode notifications

Command Command Description

notify: timeline position: {true/false} set playback timeline position notifications
notify: playrange: {true/false} set playrange notifications
notify: cache: {true/false} set cache notifications
notify: dynamic range: {true/false} set dynamic range settings notifications
notify: slate: {true/false} set digital slate notifications
goto: clip id: {start/end} goto first clip or last clip
goto: clip id: {n} goto clip id {n}
goto: clip id: +{n} go forward {n} clips
goto: clip id: -(n) go backward {n} clips
goto: clip: {n} goto frame position {n} within current clip
goto: clip: +{n} go forward {n} frames within current clip
goto: clip: -(n) go backward {n} frames within current clip
goto: clip: {start/end}goto start or end of clip
goto: timeline: {n}goto frame position {n} within timeline
goto: timeline: +{n}o forward {n} frames within timeline
goto: timeline: -(n}go backward {n} frames within timeline
goto: timeline: {start/end}goto start or end of timeline
goto: timecode: {timecode}goto specified timecode
goto: timecode: +{timecode}go forward {timecode} duration
goto: timecode: -(timecode}go backward {timecode} duration
goto: slot id: {n}goto slot id {n}
jog: timecode: {timecode}jog to timecode
jog: timecode: +{timecode}jog forward {timecode} duration
jog: timecode: -(timecode}jog backward {timecode} duration
shuttle: speed: {-5000 to 5000}shuttle with speed
remotequery unit remote control state
remote: enable: {true/false}enable or disable remote control
remote: override: {true/false}session override remote control
configurationquery configuration settings
configuration: video input: SDIswitch to SDI input
configuration: video input: HDMIswitch to HDMI input
configuration: video input: componentswitch to component input
configuration: audio input: embeddedcapture embedded audio
configuration: audio input: XLRcapture XLR audio
configuration: audio input: RCAcapture RCA audio
configuration: file format: {format}switch to specific file format
configuration: audio codec: PCMswitch to PCM audio
configuration: audio codec: AACswitch to AAC audio

Command Command Description

configuration: timecode input:{external/embedded/preset/clip}change the timecode input
configuration: timecode output:{clip/timeline/internal}change the timecode output
configuration: timecode preference:{default/dropframe/nondropframe}whether or not to use drop frame timecodes when not otherwise specified
configuration: timecode preset:{timecode}set the timecode preset
configuration: audio input channels: {n} set the number of audio channels recorded to {n}
configuration: record trigger:{none/recordbit/timecoderun}change the record trigger
configuration: record prefix: {name} set the record prefix name (supports UTF-8 name)
configuration: append timestamp:{true/false}append timestamp to recorded filename
configuration: xlr input id: {n} xlr type:{line/mic}configure xlr input typemultiple xlr inputs can be configured in a single command
configuration: genlock input resync:{true/false}enable or disable genlock input resync
uptime return time since last boot
format: prepare: {format} prepare a disk formatting operation to filesystem {format}
format: confirm: {token} perform a pre-prepared formatting operation using token
identify: enable: {true/false} identify the device
watchdog: period: {period in seconds} clientconnection timeout
reboot reboot device
slate clips slate clips information
slate project slate project information
slate project:←camera: {index}←set camera index e.g. A

Command Combinations

You can combine the parameters into a single command, for example:

play: speed: 200 loop: true single clip: true

Or for configuration:

configuration: video input: SDI audio input: XLR

Or to switch to the second disk, but only play NTSC clips:

slot select: slot id: 2 video format: NTSC

Using XML

While you can use the Terminal to talk to HyperDeck, if you are writing software, you can use XML to confirm the existence of a specific command based on the firmware of the HyperDeck you are communicating with. This helps your software user interface adjust to the capabilities of the specific HyperDeck model and software version.

Protocol Details

Connection

The HyperDeck Ethernet server listens on TCP port 9993.

Basic syntax

The HyperDeck protocol is a line oriented text protocol. Lines from the server will be separated by an ascii CR LF sequence. Messages from the client may be separated by LF or CR LF.

New lines are represented in this document as a "←" symbol.

Single line command syntax

Command parameters are usually optional. A command with no parameters is terminated with a new line:

{Command name} 

If parameters are specified, the command name is followed by a colon, then pairs of parameter names and values. Each parameter name is terminated with a colon character:

{Command name}: {Parameter}: {Value} {Parameter}: {Value} ... 

Multiline command syntax

The HyperDeck protocol also supports an equivalent multiline syntax where each parameter-value pair is entered on a new line. E.g.

{Command name}:←
{Pa ra m e t e r}: { Va lu e}←
{Pa ra m e t e r}: { Va lu e}← 

Response syntax

Simple responses from the server consist of a three digit response code and descriptive text terminated by a new line:

{Response code} {Response text} 

If a response carries parameters, the response text is terminated with a colon, and parameter name and value pairs follow on subsequent lines until a blank line is returned:

{Response code} {Response text}:←
{Pa ra m e t e r}: { Va lu e}←
{Pa ra m e t e r}: { Va lu e}←
...
← 

Successful response codes

A simple acknowledgement of a command is indicated with a response code of 200:

200 ok← 

Other successful responses carry parameters and are indicated with response codes in the range of 201 to 299.

Failure response codes

Failure responses to commands are indicated with response codes in the range of 100 to 199:

100 syntax error
101 unsupported parameter
102 invalid value
103 unsupported
104 disk full
105 no disk
106 disk error
107 timeline empty
108 internal error
109 out of range
110 no input
111 remote control disabled
112 clip not found
120 connection rejected
150 invalid state
151 invalid codec
160 invalid format
161 invalid token
162 format not prepared
163 parameterized single line command not supported 

Asynchronous response codes

The server may return asynchronous messages at any time. These responses are indicated with response codes in the range of 500 to 599:

5xx {Response Text}:←
{Pa ra m e t e r}: {Va lu e}←
{Pa ra m e t e r}: {Va lu e}← 

Connection response

On connection, an asynchronous message will be delivered:

500 connection info:←
protocol version: {Version}←
model: {Model Name}← 

Connection rejection

Only one client may connect to the server at a time. If other clients attempt to connect concurrently, they will receive an error and be disconnected:

120 connection rejected 

Timecode syntax

Timecodes are expressed as non-drop-frame timecode in the format:

HH:MM:SS:FF

Handling of deck "remote" state

The “remote” command may be used to enable or disable the remote control of the deck. Any attempt to change the deck state over ethernet while remote access is disabled will generate an error:

111 remote control disabled

To enable or disable remote control:

remote: enable: {"true", "false"} 

The current remote control state may be overridden allowing remote access over ethernet irrespective of the current remote control state:

remote: override: {"true", "false"} 

The override state is only valid for the currently connected ethernet client and only while the connection remains open.

The “remote” command may be used to query the remote control state of the deck by specifying no parameters:

remote 

The deck will return the current remote control state:

210 remote info:←
enabled: {"true", "false"}←
override: {"true", "false"}←

Asynchronous remote control information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in remote state will generate a "510 remote info:" asynchronous message with the same parameters as the "210 remote info:" message.

Closing connection

The "quit" command instructs the server to cleanly shut down the connection:

quit 

Checking connection status

The "ping" command has no function other than to determine if the server is responding:

ping← 

Getting help

The "help" or "?" commands return human readable help text describing all available commands and parameters:

help 

Or:

?← 

The server will respond with a list of all supported commands:

201 help:
{Help Tex t}
{Help Tex t} 

Switching to preview mode

The "preview" command instructs the deck to switch between preview mode and output mode:

preview: enable: {"true", "false"} 

Playback will be stopped when the deck is switched to preview mode. Capturing will be stopped when the deck is switched to output mode.

Controlling device playback

The "play" command instructs the deck to start playing:

play← 

The play command accepts a number of parameters which may be used together in most combinations.

By default, the deck will play all remaining clips on the timeline then stop.

The "single clip" parameter may be used to override this behavior:

play: single clip: {"true", "false"} 

By default, the deck will play at normal (100%) speed. An alternate speed may be specified in percentage between -1600 and 1600:

play: speed: {% normal speed} 

By default, the deck will stop playing when it reaches to the end of the timeline. The "loop" parameter may be used to override this behavior:

play: loop: {"true", "false"} 

The “playrange” command instructs the deck to play all the clips. To override this behavior; and select a particular clip:

playrange set: clip id: {Clip ID} 

To only play a certain timecode range:

playrange set: in: {in timecode} out: {out timecode} 

To clear a set playrange and return to the default value:

playrange clear 

The “play on startup command” instructs the deck on what action to take on startup. By default, the deck will not play. Use the “enable” command to start playback after each power up.

play on startup: enable { "true", "false" } 

By default, the unit will play back all clips on startup. Use the "single clip" command to override.

play on startup: single clip: {"true", "false"} 

Stopping deck operation

The "stop" command instructs the deck to stop the current playback or capture:

stop← 

Changing timeline position

The "goto" command instructs the deck to switch to playback mode and change its position within the timeline.

To go to the start of a specific clip:

goto: clip id: {Clip ID} 

To move forward/back {count} clips from the current clip on the current timeline:

goto: clip id: +/- {count} 

Note that if the resultant clip id goes beyond the first or last clip on timeline, it will be clamp at the first or last clip.

To go to the start or end of the current clip:

goto: clip: {"start", "end"} 

To go to the start of the first clip or the end of the last clip:

goto: timeline: { "start", "end"} 

To go to a specified timecode:

goto: timecode: {timecode} 

To move forward or back a specified duration in timecode:

goto: timecode: {“+”, “-”} {duration in timecode} 

To specify between slot 1 and slot 2:

goto: slot id: {Slot ID} 

Note that only one parameter/value pair is allowed for each goto command.

Enumerating supported commands and parameters

The "commands" command returns the supported commands:

commands 

The command list is returned in a computer readable XML format:

212 commands:
<commands>
<command name="..."><parameter name="..."/>...</command>
<command name="..."><parameter name="..."/>...</command>
...
</commands> 

More XML tokens and parameters may be added in later releases.

Controlling asynchronous notifications

The "notify" command may be used to enable or disable asynchronous notifications from the server.

To enable or disable transport notifications:

notify: transport: {"true", "false"} 

To enable or disable slot notifications:

notify: slot: {"true", "false"} 

To enable or disable remote notifications:

notify: remote: {"true", "false"} 

To enable or disable configuration notifications:

notify: configuration: {"true", "false"} 

Multiple parameters may be specified. If no parameters are specified, the server returns the current state of all notifications:

209 notify:←
transport: { "true", "false" }←
slot: { "true", "false" }←
remote: { "true", "false" }←
configuration: { "true", "false" }←
dropped frames: { "true", "false" }←
display timecode: { "true", "false" }←
timeline position: { "true", "false" }←
playrange: { "true", "false" }←
cache: { "true", "false" }←
dynamic range: { "true", "false" }←
slate: { "true", "false" }← 

Retrieving device information

The "device info" command returns information about the connected deck device:

device info 

The server will respond with:

204 device info:←
protocol version: {Version}←
model: {Model Name}←
unique id: {unique alphanumeric identifier}←
slot count: {number of storage slots}←
software version: {software version}← 

Retrieving slot information

The "slot info" command returns information about a slot. Without parameters, the command returns information for the currently selected slot:

slot info 

If a slot id is specified, that slot will be queried:

slot info: slot id: {Slot ID} 

The server will respond with slot specific information:

202 slot info:←
slot id: {Slot ID}←
    status: {"empty", "mounting", "error", "mounted"}←
volume name: {Volume name}←
recording time: {recording time available in seconds}←
video format: {disk's default video format}←
blocked: {"true", "false"}← 

Asynchronous slot information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in slot state will generate a "502 slot info:" asynchronous message with the same parameters as the "202 slot info:" message.

Retrieving clip information

The "disk list" command returns the information for each playable clip on a given disk. Without parameters, the command returns information for the current active disk:

disk list 

If a slot id is specified, the disk in that slot will be queried:

disk list: slot id: {Slot ID} 

The server responds with the list of all playable clips on the disk in the format of: Index, name, formats, and duration in timecode:

206 disk list:←
slot id: {Slot ID}←
{clip index}: {name} {file format} {video format} {Duration timecode}←
{clip index}: {name} {file format} {video format} {Duration timecode}←
...
← 

Note that the clip index starts from 1.

Retrieving clip count

The "clips count" command returns the number of clips on the current timeline:

clips count ← 

The server responds with the number of clips:

214 clips count: ←
clip count: {Count}← 

Retrieving timeline information

The "clips get" command returns information for each available clip on the current timeline. Without parameters, the command returns information for all clips on timeline:

clips get← 

The server responds with a list of clip IDs, names and timecodes:

205 clips info:←
clip count: {Count}←
{Clip ID}: {Name} {Start timecode} {Duration timecode}←
{Clip ID}: {Name} {Start timecode} {Duration timecode}←
... 

Retrieving transport Information

The "transport info" command returns the state of the transport:

transport info ← 

The server responds with transport specific information:

208 transport info:
status: { "preview", "stopped", "play", "forward", "rewind", "jog", "shuttle","record"}←
speed: {Play speed between -5000 and 5000 %}←
slot id: {Slot ID or "none"}←
clip id: {Clip ID or "none"}←
single clip: { "true", "false"}←
display timecode: {timecode}←
timecode: {timecode}←
video format: {Video format}←
loop: { "true", "false"}←
timeline: {n}←
input video format: {Video format"}←
dynamic range: { "off", "Rec709", "Rec2020_SDR", "HLG", "ST2084_300", "ST2084_500", "ST2084_800", "ST2084_1000", "ST2084_2000", "ST2084_4000", "ST2048" or "none"}← 

The "timecode" value is the timecode within the current timeline for playback or the clip for record. The "display timecode" is the timecode displayed on the front of the deck. The two timecodes will differ in some deck modes.

Asynchronous transport information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in transport state will generate a "508 transport info:" asynchronous message with the same parameters as the "208 transport info:" message.

Video Formats

The following video formats are currently supported on HyperDeck Studio:

NTSC, PAL, NTSCp, PALp

720p50, 720p5994, 720p60

1080p23976, 1080p24, 1080p25, 1080p2997, 1080p30

1080i50, 1080i5994, 1080i60

HyperDeck Studio Pro and Plus models support these 4k formats:

4Kp23976, 4Kp24, 4Kp25, 4Kp2997, 4Kp30

HyperDeck Studio 4K Pro adds support for the following 4k formats:

4Kp50, 4Kp5994, 4Kp60

Video format support may vary between models and software releases.

File Formats

All HyperDeck models currently support the following file formats:

H.264High_SDI

H.264High

H.264Medium

H.264Low

QuickTimeProResHQ

QuickTimeProRes

QuickTimeProResLT

QuickTimeProResProxy

QuickTimeDNxHD220x

DNxHD220x

QuickTimeDNxHD145

DNxHD145

QuickTimeDNxHD45

DNxHD45

HyperDeck Studio 4K Pro also supports the following file formats:

H.265High_SDI

H.265High

H.265Medium

H.265Low

QuickTimeDNxHR_HQX

DNxHR_HQX 4Kp60

QuickTimeDNxHR_SQ

DNxHR_SQ

QuickTimeDNxHR_LB

DNxHR_LB

Supported file formats may vary between models and software releases.

Querying and updating configuration information

The "configuration" command may be used to query the current configuration of the deck:

configuration 

The server returns the configuration of the deck:

211 configuration:
audio input: { "embedded", "XLR", "RCA" }←
audio mapping: {n}←
video input: { "SDI", "HDMI", "component", "composite" }←
file format: {format}←
audio codec: { "PCM", "AAC" }←
timecode input: { "external", "embedded", "preset", "clip" }←
timecode output: { "clip", "timeline" }←
timecode preference: { "default", "dropframe", "nondropframe" }←
timecode preset: {timecode}←
audio input channels: {n}←
record trigger: { "none", "recordbit", "timecoderun" }←
record prefix: {name}←
append timestamp: { "true", "false" }← 

One or more configuration parameters may be specified to change the configuration of the deck.

To change the current video input:

configuration: video input: {"SDI", "HDMI", "component"} 

Valid video inputs may vary between models. To configure the current audio input:

configuration: audio input: {"embedded", "XLR", "RCA"} 

Valid audio inputs may vary between models.

To configure the current file format:

configuration: file format: {File format} 

Note that changes to the file format may require the deck to reset, which will cause the client connection to be closed. In such case, response code 213 will be returned (instead of 200) before the client connection is closed:

"213 deck rebooting" 

Asynchronous configuration information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in configuration will generate a "511 configuration:" asynchronous message with the same parameters as the "211 configuration:" message.

Selecting active slot and video format

The "slot select" command instructs the deck to switch to a specified slot, or/and to select a specified output video format.

To switch to a specified slot:

slot select: slot id: {slot ID} 

To select the output video format:

slot select: video format: {video format} 

Either or all slot select parameters may be specified. Note that selecting video format will result in a rescan of the disk to reconstruct the timeline with all clips of the specified video format.

Clearing the current timeline

The "clips clear" command instructs the deck to empty the current timeline:

clips clear 

The server responds with

200 ok← 

Adding a clip to the current timeline

The "clips add:" command instructs the deck to add a clip to the current timeline:

clips add: name: {"clip name"} 

The server responds with

200 ok← 

or in case of error

1xx {error description} 

Configuring the watchdog

The “watchdog” command instructs the deck to monitor the connected client and terminate the connection if the client is inactive for at least a specified period of time.

To configure the watchdog:

watchdog: period: {period in seconds} 

To avoid disconnection, the client must send a command to the server at least every {period} seconds. Note that if the period is set to 0 or less than 0, connection monitoring will be disabled.

Hilfe

California Proposition 65

Blackmagic Design HyperDeck Studio 4K Pro - California Proposition 65 - 1

natural_image Circular portrait photo of a smiling man in a dark shirt against a gray textured background (no text or symbols)

Bienvenido

natural_image Front view of a black audio workstation with multiple video and audio equipment modules (no readable text or symbols)

HyperDeck Studio HD Pro y HyperDeck Studio 4K Pro

Blackmagic Design HyperDeck Studio 4K Pro - Bienvenido - 1

natural_image Black audio recording device with digital display and control buttons (no readable text or symbols)

Blackmagic Design HyperDeck Studio 4K Pro - Bienvenido - 2

natural_image Black audio recording device with multiple control knobs and a digital display showing time, date, and preview (no readable text or symbols)

HyperDeck Studio HD Mini Modelo HyperDeck Studio HD Plus

natural_image Illustration of hands interacting with a device panel showing playback controls and a video player interface (no text or symbols on the device itself)
natural_image Diagram of a server rack with ports and connectors, showing an orange arrow indicating a specific component (no text or symbols present)

Barra

Para ver una LUT:

natural_image Front view illustration of a rack-mounted server unit with control panel and drive slots (no text or symbols)
natural_image Front view of a computer rack with indicator lights and ports (no text or symbols)
Command Reply No Remote Notes
0 - System Control
0x00 0x11 DeviceTypeRequestNTSC: 0xF0E0PAL: 0xF1E024P: 0xF2E0Enabled
1 - Slave Response
0x200x00StopAcknowledgeDisabled
0x200x01PlayAcknowledgeDisabled
0x200x02RecordAcknowledgeDisabled
0x200x04StandbyOffAcknowledgeDisabled
0x200x05StandbyOnAcknowledgeDisabled
0x200x0FEjectAcknowledgeDisabled
0x200x10FastFwdAcknowledgeDisabled
0x210x11JogFwd1AcknowledgeDisabled
0x220x11JogFwd2AcknowledgeDisabledTreated as N=1;Same as JogFwd1
0x210x12VarFwd1AcknowledgeDisabledUses ShuttleFwd1
0x220x12VarFwd2AcknowledgeDisabledTreated as N=1;Same as VarFwd1
0x210x13ShuttleFwd1AcknowledgeDisabled
0x220x13ShuttleFwd2AcknowledgeDisabledTreated as N=1;Same as ShuttleFwd1
0x200x20RewindAcknowledgeDisabled
0x21 0x21 JogRev1 Acknowledge Disabled
0x220x21JogRev2AcknowledgeDisabledTreated as N=1;Same as JogRev1
0x210x22VarRev1AcknowledgeDisabledUses ShuttleRev1

Command Reply No Remote Notes

0x22 0x22 VarRev2 Acknowledge DisabledTreated as N=1;Same as VarRev1
0x210x23ShuttleRev1AcknowledgeDisabled
0x220x23ShuttleRev2AcknowledgeDisabledTreated as N=1;Same as ShuttleRev1
0x200x30PrerollAcknowledgeDisabled
0x24 0x31 CueData Acknowledge Disabled
0x200x34SyncPlayAcknowledgeDisabled
0x200x40PreviewAcknowledgeDisabledStatus bits are set
0x200x41ReviewAcknowledgeDisabledStatus bits are set
0x200x43OutpointPreviewAcknowledgeDisabled
0x220x5CDMCSetFwdAcknowledgeDisabled
0x220x5DDMCSetRevAcknowledgeDisabled
0x200x60FullEEOffAcknowledgeDisabled
0x200x61FullEEOnAcknowledgeDisabled
0x200x63SelectEEOnAcknowledgeDisabled
4 - Preset/Select Control
0x400x10InEntryAcknowledgeDisabled
0x400x11OutEntryAcknowledgeDisabled
0x440x14InDataPresetAcknowledgeDisabled
0x440x15OutDataPresetAcknowledgeDisabled
0x400x18InShift+AcknowledgeDisabled
0x400x19InShift-AcknowledgeDisabled
0x400x1AOutShift+AcknowledgeDisabled
0x400x1BOutShift-AcknowledgeDisabled
0x400x20InResetAcknowledgeDisabled
0x400x21OutResetAcknowledgeDisabled
0x400x22AlnResetAcknowledgeDisabled
0x400x23AOutResetAcknowledgeDisabled
0x440x31PrerollPresetAcknowledgeDisabled
0x400x40AutoModeOffAcknowledgeDisabledignored, Status bit remembered
0x400x41AutoModeOnAcknowledgeDisabledignored, Status bit remembered
0x410x37InputCheckAcknowledgeDisabled

Command Reply No Remote Notes
6 - Sense Request

0x61 0x0A TimeCodeGenSense — —
0x61 0x0C CurrentTimeSense — —
0x60 0x10 InDataSense InData Enabled
0x600x11OutDataSenseOutDataEnabled
0x600x12AlnDataSenseAlnDataEnabled
0x600x13AOutDataSenseAOutDataEnabled
0x610x20StatusSenseStatusDataEnabled
0x600x2BRemainTimeSenseRemainTimeDataEnabled
0x600x2ESpeedSenseSpeedDataEnabled
0x600x31PrerollTimeSensePreRollTimeDataEnabled
0x600x36TimerModeSenseTimerModeDataEnabled
0x600x3ERecordInhibitSenseRecordInhibitStatusEnabled

7 - Sense Reply

0x780x00Timer1DataCurrent Time and 00:00:00:00
0x780x04LTCUserBitsTimeDataCurrent Time and 00:00:00:00
0x780x06VITCUserBitsTimeDataCurrent Time and 00:00:00:00
0x740x06VITCTimeDataCurrent Time
0x740x07UserBitsVITCTimeData00:00:00:00
0x740x08GenTCDATACurrent Time
0x780x08GenTCUBDataCurrent Time and 00:00:00:00
0x740x09GenUBData00:00:00:00
0x74 0x10 InData— —
0x740x11OutData
0x740x12AlnData
0x740x13AOutData
0x740x14CorrectedLTCTimeDataCurrent Time
0x700x20StatusDataPlease see “Status Bits” sheet: Limited to 9 bytes of status, silently truncated
0x760x2BRemainTimeData
0x710x2ESpeedData
0x740x31PrerollTimeData
0x710x36TimerModeDataReturns 0 (TimeCode)
0x720x3ERecordInhibitStatus

Command Reply No Remote Notes
A - Advanced Media Protocol

0xA10x01AutoSkipAcknowledgeDisabled8-bit signed number of clips to skip from current clip
0xAX0x15ListNextIDIDListingEnabledwhen x = 0 single clip request when x = 1, # clips can be specified in the send data
0x200x29ClearPlaylistAcknowledgeDisabled
0x410x42SetPlaybackLoopAcknowledgeDisabledBit 0 loop mode enable, 0=false 1=trueBit 1 is single clip/timeline0=single clip1=timeline
0x410x44SetStopModeAcknowledgeDisabled0 = Off1 = Freeze on last frame2 = Freeze on next clip3 = Show black
0x4f0x16AppendPresetAcknowledgeDisabled2 Bytes for the length N of the clip nameN Bytes for each character of the clip name4 Byte in point timecode (format is FFSSMMHH)4 Byte out point timecode (format is FFSSMMHH)

Blackmagic Extensions

0x820x02BMDSeekToTimelinePositionAcknowledgeDisabled16-bit little endian fractional position [0..65535]
0x810x03BMDSeekRelativeClipAcknowledgeDisabledOne-byte signed integer, which is the number of clips to skip (negative for backwards).
Variables
Cassette OutSet if no SSD is present
LocalSet if Remote is disabled (local control)
StandbySet if a disk is available
DirectionClear if playback is forwarding, set if playback is reversing
StillSet if playback is paused, or if in input preview mode
Auto ModeSet if in Auto Mode
Select EE, Full EESet if in input preview mode
Lamp Still/Fwd/RevSet according to playback speed and direction
Near EOTSet if total space left on available SSDs is less than 3 minutes
EOTSet if total space left on available SSDs is less than 30 seconds
Others
Cue Complete (byte 2, bit 0)Always 1: Cue requests are always instantaneous
HyperDeck Serial RS-422 Protocol
ProtocolBased on Sony 9-pin protocol
InterfaceBaud rate 38.4 Kbps
1 start bit
8 data bits
1 stop bit
1 parity bit
Odd parity
natural_image Front view of a server rack with I2G SDJ branding and control buttons (no text or symbols on main body)
Command Command Description
help or ? Provides help text on all commands and parameters
commands return commands in XML format
device info return device information
disk list query clip list on active disk
disk list: slot id: {n} query clip list on disk in slot {n}
quit disconnect ethernet control
ping check device is responding
preview: enable: {true/false} switch to preview or output
play play from current timecode
play: speed: {-5000 to 5000} play at specific speed
play: loop: {true/false} play in loops or stop-at-end
play: single clip: {true/false} play current clip or all clips
playrange query playrange setting
playrange set: clip id: {n} set play range to play clip {n} only
playrange set: clip id: {n} count: {m}set play range to {m} clips starting from clip {n}
playrange set: in: {inT} out: {outT}set play range to play between:- timecode {inT} and timecode {outT}
playrange set: timeline in: {in} timeline out: {out}set play range in units of frames between:- timeline position {in} and position {out} clear/reset play range setting
playrange clearclear/reset play range setting
play on startupquery unit play on startup state
play on startup: enable: {true/false}enable or disable play on startup
play on startup: single clip: {true/false}play single clip or all clips on startup
play option query play options
play option: stop mode:{lastframe/nextframe/black}set output frame when playback stops
recordrecord from current input
record: name: {name}record named clip
record spillspill current recording to next slot

Command Command Description

record: spill: slot id: {n}spill current recording to specified slotuse current id to spill to same slot
stop stop playback or recording
clips count query number of clips on timeline
clips get query all timeline clips
clips get: clip id: {n} query a timeline clip info
clips get: clip id: {n} count: {m} query m clips starting from n
clips get: version: {1/2}query clip info using specified output version:version 1: is: name startT durationversion 2: id: startT duration inT outT name
clips add: name: {name} append a clip to timeline
clips add: clip id: {n} name: {name} insert clip before existing clip {n}
clips add: in: {inT} out: {outT} name: {name} append the {inT} to {outT} portion of clip
clips remove: clip id: {n}remove clip {n} from the timeline(invalidates clip ids following clip {n})
clips clear empty timeline clip list
transport info query current activity
slot info query active slot
slot info: slot id: {n} query slot {n}
slot select: slot id: {n} switch to specified slot
slot select: video format: {format}load clips of specified format
slot unblockunblock active slot
slot unblock: slot id: {n}unblock slot {n}
cache infoquery cache status
dynamic rangequery dynamic range settings
dynamic range: playback override:{off/Rec709/Rec2020_SDR/HLG/ST2084_300/ST2084_500/ST2084_800/ST2084_1000/ST2084_2000/ST2084_4000/ST2084set playback dynamic range override
dynamic range: record override:{off/Rec709/Rec2020_SDR/HLG/ST2084_300/ST2084_500/ST2084_800/ST2084_1000/ST2084_2000/ST2084_4000/ST2048}set record dynamic range override
notifyquery notification status
notify: remote: {true/false}set remote notifications
notify: transport: {true/false}set transport notifications
notify: slot: {true/false}set slot notifications
notify: configuration: {true/false}set configuration notifications
notify: dropped frames: {true/false}set dropped frames notifications
notify: display timecode: {true/false}set display timecode notifications

Command Command Description

notify: timeline position: {true/false} set playback timeline position notifications
notify: playrange: {true/false} set playrange notifications
notify: cache: {true/false} set cache notifications
notify: dynamic range: {true/false} set dynamic range settings notifications
notify: slate: {true/false} set digital slate notifications
goto: clip id: {start/end} goto first clip or last clip
goto: clip id: {n} goto clip id {n}
goto: clip id: +{n} go forward {n} clips
goto: clip id: -(n) go backward {n} clips
goto: clip: {n} goto frame position {n} within current clip
goto: clip: +{n} go forward {n} frames within current clip
goto: clip: -(n) go backward {n} frames within current clip
goto: clip: {start/end}goto start or end of clip
goto: timeline: {n}goto frame position {n} within timeline
goto: timeline: +{n}o forward {n} frames within timeline
goto: timeline: -(n}go backward {n} frames within timeline
goto: timeline: {start/end}goto start or end of timeline
goto: timecode: {timecode}goto specified timecode
goto: timecode: +{timecode}go forward {timecode} duration
goto: timecode: -(timecode}go backward {timecode} duration
goto: slot id: {n}goto slot id {n}
jog: timecode: {timecode}jog to timecode
jog: timecode: +{timecode}jog forward {timecode} duration
jog: timecode: -(timecode}jog backward {timecode} duration
shuttle: speed: {-5000 to 5000}shuttle with speed
remotequery unit remote control state
remote: enable: {true/false}enable or disable remote control
remote: override: {true/false}session override remote control
configurationquery configuration settings
configuration: video input: SDIswitch to SDI input
configuration: video input: HDMIswitch to HDMI input
configuration: video input: componentswitch to component input
configuration: audio input: embeddedcapture embedded audio
configuration: audio input: XLRcapture XLR audio
configuration: audio input: RCAcapture RCA audio
configuration: file format: {format}switch to specific file format
configuration: audio codec: PCMswitch to PCM audio
configuration: audio codec: AACswitch to AAC audio

Command Command Description

configuration: timecode input:{external/embedded/preset/clip}change the timecode input
configuration: timecode output:{clip/timeline/internal}change the timecode output
configuration: timecode preference:{default/dropframe/nondropframe}whether or not to use drop frame timecodes when not otherwise specified
configuration: timecode preset:{timecode}set the timecode preset
configuration: audio input channels: {n} set the number of audio channels recorded to {n}
configuration: record trigger:{none/recordbit/timecoderun}change the record trigger
configuration: record prefix: {name} set the record prefix name (supports UTF-8 name)
configuration: append timestamp:{true/false}append timestamp to recorded filename
configuration: xlr input id: {n} xlr type:{line/mic}configure xlr input typemultiple xlr inputs can be configured in a single command
configuration: genlock input resync:{true/false}enable or disable genlock input resync
uptime return time since last boot
format: prepare: {format} prepare a disk formatting operation to filesystem {format}
format: confirm: {token} perform a pre-prepared formatting operation using token
identify: enable: {true/false} identify the device
watchdog: period: {period in seconds} clientconnection timeout
reboot reboot device
slate clips slate clips information
slate project slate project information
slate project:←camera: {index}←set camera index e.g. A

Command Combinations

You can combine the parameters into a single command, for example:

play: speed: 200 loop: true single clip: true

Or for configuration:

configuration: video input: SDI audio input: XLR

Or to switch to the second disk, but only play NTSC clips:

slot select: slot id: 2 video format: NTSC

Using XML

While you can use the Terminal to talk to HyperDeck, if you are writing software, you can use XML to confirm the existence of a specific command based on the firmware of the HyperDeck you are communicating with. This helps your software user interface adjust to the capabilities of the specific HyperDeck model and software version.

Protocol Details

Connection

The HyperDeck Ethernet server listens on TCP port 9993.

Basic syntax

The HyperDeck protocol is a line oriented text protocol. Lines from the server will be separated by an ascii CR LF sequence. Messages from the client may be separated by LF or CR LF.

New lines are represented in this document as a "←" symbol.

Single line command syntax

Command parameters are usually optional. A command with no parameters is terminated with a new line:

{Command name} 

If parameters are specified, the command name is followed by a colon, then pairs of parameter names and values. Each parameter name is terminated with a colon character:

{Command name}: {Parameter}: {Value} {Parameter}: {Value} ... 

Multiline command syntax

The HyperDeck protocol also supports an equivalent multiline syntax where each parameter-value pair is entered on a new line. E.g.

{Command name}:←
{Pa ra m e t e r}: { Va lu e}←
{Pa ra m e t e r}: { Va lu e}← 

Response syntax

Simple responses from the server consist of a three digit response code and descriptive text terminated by a new line:

{Response code} {Response text} 

If a response carries parameters, the response text is terminated with a colon, and parameter name and value pairs follow on subsequent lines until a blank line is returned:

{Response code} {Response text}:←
{Pa ra m e t e r}: { Va lu e}←
{Pa ra m e t e r}: { Va lu e}←
...
← 

Successful response codes

A simple acknowledgement of a command is indicated with a response code of 200:

200 ok← 

Other successful responses carry parameters and are indicated with response codes in the range of 201 to 299.

Failure response codes

Failure responses to commands are indicated with response codes in the range of 100 to 199:

100 syntax error
101 unsupported parameter
102 invalid value
103 unsupported
104 disk full
105 no disk
106 disk error
107 timeline empty
108 internal error
109 out of range
110 no input
111 remote control disabled
112 clip not found
120 connection rejected
150 invalid state
151 invalid codec
160 invalid format
161 invalid token
162 format not prepared
163 parameterized single line command not supported 

Asynchronous response codes

The server may return asynchronous messages at any time. These responses are indicated with response codes in the range of 500 to 599:

5xx {Response Text}:←
{Pa ra m e t e r}: {Va lu e}←
{Pa ra m e t e r}: {Va lu e}←
← 

Connection response

On connection, an asynchronous message will be delivered:

500 connection info:←
protocol version: {Version}←
model: {Model Name}← 

Connection rejection

Only one client may connect to the server at a time. If other clients attempt to connect concurrently, they will receive an error and be disconnected:

120 connection rejected 

Timecode syntax

Timecodes are expressed as non-drop-frame timecode in the format:

HH:MM:SS:FF

Handling of deck "remote" state

The “remote” command may be used to enable or disable the remote control of the deck. Any attempt to change the deck state over ethernet while remote access is disabled will generate an error:

111 remote control disabled 

To enable or disable remote control:

remote: enable: {"true", "false"} 

The current remote control state may be overridden allowing remote access over ethernet irrespective of the current remote control state:

remote: override: { "true", "false" } 

The override state is only valid for the currently connected ethernet client and only while the connection remains open.

The "remote" command may be used to query the remote control state of the deck by specifying no parameters:

remote 

The deck will return the current remote control state:

210 remote info:←
enabled: {"true", "false"}←
override: {"true", "false"}←

Asynchronous remote control information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in remote state will generate a "510 remote info:" asynchronous message with the same parameters as the "210 remote info:" message.

Closing connection

The "quit" command instructs the server to cleanly shut down the connection:

quit 

Checking connection status

The "ping" command has no function other than to determine if the server is responding:

ping← 

Getting help

The "help" or "?" commands return human readable help text describing all available commands and parameters:

help 

Or:

?← 

The server will respond with a list of all supported commands:

201 help:
{Help Tex t}
{Help Tex t} 

Switching to preview mode

The "preview" command instructs the deck to switch between preview mode and output mode:

preview: enable: {"true", "false"} 

Playback will be stopped when the deck is switched to preview mode. Capturing will be stopped when the deck is switched to output mode.

Controlling device playback

The "play" command instructs the deck to start playing:

play← 

The play command accepts a number of parameters which may be used together in most combinations.

By default, the deck will play all remaining clips on the timeline then stop.

The "single clip" parameter may be used to override this behavior:

play: single clip: {"true", "false"} 

By default, the deck will play at normal (100%) speed. An alternate speed may be specified in percentage between -1600 and 1600:

play: speed: {$ normal speed} 

By default, the deck will stop playing when it reaches to the end of the timeline. The “loop” parameter may be used to override this behavior:

play: loop: {"true", "false"} 

The “playrange” command instructs the deck to play all the clips. To override this behavior: and select a particular clip:

playrange set: clip id: {Clip ID} 

To only play a certain timecode range:

playrange set: in: {in timecode} out: {out timecode} 

To clear a set playrange and return to the default value:

playrange clear 

The “play on startup command” instructs the deck on what action to take on startup. By default, the deck will not play. Use the “enable” command to start playback after each power up.

play on startup: enable { "true", "false" } 

By default, the unit will play back all clips on startup. Use the "single clip" command to override.

play on startup: single clip: {"true", "false"} 

Stopping deck operation

The "stop" command instructs the deck to stop the current playback or capture:

stop 

Changing timeline position

The "goto" command instructs the deck to switch to playback mode and change its position within the timeline.

To go to the start of a specific clip:

goto: clip id: {Clip ID} 

To move forward/back {count} clips from the current clip on the current timeline:

goto: clip id: +/- {count} 

Note that if the resultant clip id goes beyond the first or last clip on timeline, it will be clamp at the first or last clip.

To go to the start or end of the current clip:

goto: clip: { "start", "end"} 

To go to the start of the first clip or the end of the last clip:

goto: timeline: {"start", "end"} 

To go to a specified timecode:

goto: timecode: {timecode} 

To move forward or back a specified duration in timecode:

goto: timecode: { "+", "-"}{duration in timecode} 

To specify between slot 1 and slot 2:

goto: slot id: {Slot ID} 

Note that only one parameter/value pair is allowed for each goto command.

Enumerating supported commands and parameters

The "commands" command returns the supported commands:

commands 

The command list is returned in a computer readable XML format:

212 commands:
<commands>
<command name="..."><parameter name="..."/>...</command>
<command name="..."><parameter name="..."/>...</command>
...
</commands> 

More XML tokens and parameters may be added in later releases.

Controlling asynchronous notifications

The "notify" command may be used to enable or disable asynchronous notifications from the server.

To enable or disable transport notifications:

notify: transport: { "true", "false" } 

To enable or disable slot notifications:

notify: slot: {"true", "false"} 

To enable or disable remote notifications:

notify: remote: {"true", "false"} 

To enable or disable configuration notifications:

notify: configuration: {"true", "false"} 

Multiple parameters may be specified. If no parameters are specified, the server returns the current state of all notifications:

209 notify:
transport: {"true", "false"}
slot: {"true", "false"}
remote: {"true", "false"}
configuration: {"true", "false"}
dropped frames: {"true", "false"}
display timecode: {"true", "false"}
timeline position: {"true", "false"}
playrange: {"true", "false"}
cache: {"true", "false"}
dynamic range: {"true", "false"}
slate: {"true", "false"} 

Retrieving device information

The "device info" command returns information about the connected deck device:

device info 

The server will respond with:

204 device info:←
protocol version: {Version}←
model: {Model Name}←
unique id: {unique alphanumeric identifier}←
slot count: {number of storage slots}←
software version: {software version}← 

Retrieving slot information

The "slot info" command returns information about a slot. Without parameters, the command returns information for the currently selected slot:

slot info 

If a slot id is specified, that slot will be queried:

slot info: slot id: {Slot ID} 

The server will respond with slot specific information:

202 slot info:←
slot id: {Slot ID}←
    status: {"empty", "mounting", "error", "mounted"}←
volume name: {Volume name}←
recording time: {recording time available in seconds}←
video format: {disk's default video format}←
blocked: {"true", "false"}← 

Asynchronous slot information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in slot state will generate a "502 slot info:" asynchronous message with the same parameters as the "202 slot info:" message.

Retrieving clip information

The “disk list” command returns the information for each playable clip on a given disk. Without parameters, the command returns information for the current active disk:

disk list 

If a slot id is specified, the disk in that slot will be queried:

disk list: slot id: {Slot ID} 

The server responds with the list of all playable clips on the disk in the format of: Index, name, formats, and duration in timecode:

206 disk list:←
slot id: {Slot ID}←
{clip index}: {name} {file format} {video format} {Duration timecode}←
{clip index}: {name} {file format} {video format} {Duration timecode}←
...
← 

Note that the clip index starts from 1.

Retrieving clip count

The "clips count" command returns the number of clips on the current timeline:

clips count ← 

The server responds with the number of clips:

214 clips count: ←
clip count: {Count}← 

Retrieving timeline information

The "clips get" command returns information for each available clip on the current timeline. Without parameters, the command returns information for all clips on timeline:

clips get← 

The server responds with a list of clip IDs, names and timecodes:

205 clips info:←
clip count: {Count}←
{Clip ID}: {Name} {Start timecode} {Duration timecode}←
{Clip ID}: {Name} {Start timecode} {Duration timecode}←
... 

Retrieving transport information

The "transport info" command returns the state of the transport:

transport info ← 

The server responds with transport specific information:

208 transport info:
status: { "preview", "stopped", "play", "forward", "rewind", "jog", "shuttle", "record" }←
speed: {Play speed between -5000 and 5000 %}←
slot id: {Slot ID or "none"}←
clip id: {Clip ID or "none"}←
single clip: { "true", "false" }←
display timecode: {timecode}←
timecode: {timecode}←
video format: {Video format}←
loop: { "true", "false" }←
timeline: {n}←
input video format: {Video format"}←
dynamic range: { "off", "Rec709", "Rec2020_SDR", "HLG", "ST2084_300", "ST2084_500", "ST2084_800", "ST2084_1000", "ST2084_2000", "ST2084_4000", "ST2048" or "none" }← 

The "timecode" value is the timecode within the current timeline for playback or the clip for record. The "display timecode" is the timecode displayed on the front of the deck. The two timecodes will differ in some deck modes.

Asynchronous transport information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in transport state will generate a "508 transport info:" asynchronous message with the same parameters as the "208 transport info:" message.

Video Formats

The following video formats are currently supported on HyperDeck Studio:

NTSC, PAL, NTSCp, PALp

720p50, 720p5994, 720p60

1080p23976, 1080p24, 1080p25, 1080p2997, 1080p30

1080i50, 1080i5994, 1080i60

HyperDeck Studio Pro and Plus models support these 4k formats:

4Kp23976, 4Kp24, 4Kp25, 4Kp2997, 4Kp30

HyperDeck Studio 4K Pro adds support for the following 4k formats:

4Kp50, 4Kp5994, 4Kp60

Video format support may vary between models and software releases.

File Formats

All HyperDeck models currently support the following file formats:

H.264High_SDI

H.264High

H.264Medium

H.264Low

QuickTimeProResHQ

QuickTimeProRes

QuickTimeProResLT

QuickTimeProResProxy

QuickTimeDNxHD220x

DNxHD220x

QuickTimeDNxHD145

DNxHD145

QuickTimeDNxHD45

DNxHD45

HyperDeck Studio 4K Pro also supports the following file formats:

H.265High_SDI

H.265High

H.265Medium

H.265Low

QuickTimeDNxHR_HQX

DNxHR_HQX 4Kp60

QuickTimeDNxHR_SQ

DNxHR_SQ

QuickTimeDNxHR_LB

DNxHR_LB

Supported file formats may vary between models and software releases.

Querying and updating configuration information

The "configuration" command may be used to query the current configuration of the deck:

configuration 

The server returns the configuration of the deck:

211 configuration:
audio input: { "embedded", "XLR", "RCA" }←
audio mapping: {n}←
video input: { "SDI", "HDMI", "component", "composite" }←
file format: {format}←
audio codec: { "PCM", "AAC" }←
timecode input: { "external", "embedded", "preset", "clip" }←
timecode output: { "clip", "timeline" }←
timecode preference: { "default", "dropframe", "nondropframe" }←
timecode preset: {timecode}←
audio input channels: {n}←
record trigger: { "none", "recordbit", "timecoderun" }←
record prefix: {name}←
append timestamp: { "true", "false" }← 

One or more configuration parameters may be specified to change the configuration of the deck.

To change the current video input:

configuration: video input: {"SDI", "HDMI", "component"} 

Valid video inputs may vary between models. To configure the current audio input:

configuration: audio input: {"embedded", "XLR", "RCA"} 

Valid audio inputs may vary between models.

To configure the current file format:

configuration: file format: {File format} 

Note that changes to the file format may require the deck to reset, which will cause the client connection to be closed. In such case, response code 213 will be returned (instead of 200) before the client connection is closed:

"213 deck rebooting" 

Asynchronous configuration information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in configuration will generate a "511 configuration:" asynchronous message with the same parameters as the "211 configuration:" message.

Selecting active slot and video format

The "slot select" command instructs the deck to switch to a specified slot, or/and to select a specified output video format.

To switch to a specified slot:

slot select: slot id: {slot ID} 

To select the output video format:

slot select: video format: {video format} 

Either or all slot select parameters may be specified. Note that selecting video format will result in a rescan of the disk to reconstruct the timeline with all clips of the specified video format.

Clearing the current timeline

The "clips clear" command instructs the deck to empty the current timeline:

clips clear← 

The server responds with

200 ok← 

Adding a clip to the current timeline

The "clips add:" command instructs the deck to add a clip to the current timeline:

clips add: name: {"clip name"} 

The server responds with

200 ok← 

or in case of error

1xx {error description} 

Configuring the watchdog

The “watchdog” command instructs the deck to monitor the connected client and terminate the connection if the client is inactive for at least a specified period of time.

To configure the watchdog:

watchdog: period: {period in seconds} 

To avoid disconnection, the client must send a command to the server at least every {period} seconds. Note that if the period is set to 0 or less than 0, connection monitoring will be disabled.

Ayuda

Cómo obtener ayuda

Blackmagic Design HyperDeck Studio 4K Pro - Cómo obtener ayuda - 1

natural_image Circular portrait photo of a smiling man in a dark shirt against a gray background (no text or symbols)

欢迎辞

感谢您购买Blackmagic HyperDeck硬盘录机!

设置Open Broadcaster 394

Blackmagic HyperDeck Setup 396

natural_image Front view of a black audio workstation with multiple video and audio equipment modules (no visible text or labels)

HyperDeck Studio HD Pro和HyperDeck Studio 4K Pro

Blackmagic Design HyperDeck Studio 4K Pro - 欢迎辞 - 1

natural_image Black audio player device with playback controls and a digital display showing time (no readable text or symbols)

HyperDeck Studio HD Mini HyperDeck

Blackmagic Design HyperDeck Studio 4K Pro - 欢迎辞 - 2

natural_image Black audio recording device with multiple control knobs and a digital display showing time, location, and waveform (no readable text or symbols)

Studio HD Plus

natural_image Illustration of hands interacting with a device panel showing playback controls and a digital display (no readable text or symbols)

连接媒体

natural_image Diagram of a server rack with ports and an orange arrow indicating a specific component (no text or symbols present)

同步时间校准

存储条

在Windows计算机上格式化存储介质

为新信号源命名并点击“Ok”。

Device HyperDeck Studio 4K Pro #4 ✓ Use Preset Preset 1920x1080 □ Use Buffering Defaults

查看LUT

natural_image Front view of a rack-mounted server unit with ports and control panel (no visible text or labels)
natural_image Front view of a computer interface panel with buttons and ports (no text or symbols visible)
Command Reply No Remote Notes
0 - System Control
0x00 0x11 DeviceTypeRequestNTSC: 0xF0E0PAL: 0xF1E024P: 0xF2E0Enabled
1 - Slave Response
0x200x00StopAcknowledgeDisabled
0x200x01PlayAcknowledgeDisabled
0x200x02RecordAcknowledgeDisabled
0x200x04StandbyOffAcknowledgeDisabled
0x200x05StandbyOnAcknowledgeDisabled
0x200x0FEjectAcknowledgeDisabled
0x200x10FastFwdAcknowledgeDisabled
0x210x11JogFwd1AcknowledgeDisabled
0x220x11JogFwd2AcknowledgeDisabledTreated as N=1;Same as JogFwd1
0x210x12VarFwd1AcknowledgeDisabledUses ShuttleFwd1
0x220x12VarFwd2AcknowledgeDisabledTreated as N=1;Same as VarFwd1
0x210x13ShuttleFwd1AcknowledgeDisabled
0x220x13ShuttleFwd2AcknowledgeDisabledTreated as N=1;Same as ShuttleFwd1
0x200x20RewindAcknowledgeDisabled
0x210x21JogRev1AcknowledgeDisabled
0x220x21JogRev2AcknowledgeDisabledTreated as N=1;Same as JogRev1
0x210x22VarRev1AcknowledgeDisabledUses ShuttleRev1

Command Reply No Remote Notes

0x22 0x22 VarRev2 Acknowledge DisabledTreated as N=1;Same as VarRev1
0x210x23ShuttleRev1AcknowledgeDisabled
0x220x23ShuttleRev2AcknowledgeDisabledTreated as N=1;Same as ShuttleRev1
0x200x30PrerollAcknowledgeDisabled
0x24 0x31 CueData Acknowledge Disabled
0x200x34SyncPlayAcknowledgeDisabled
0x200x40PreviewAcknowledgeDisabledStatus bits are set
0x200x41ReviewAcknowledgeDisabledStatus bits are set
0x200x43OutpointPreviewAcknowledgeDisabled
0x220x5CDMCSetFwdAcknowledgeDisabled
0x220x5DDMCSetRevAcknowledgeDisabled
0x200x60FullEEOffAcknowledgeDisabled
0x200x61FullEEOnAcknowledgeDisabled
0x200x63SelectEEOnAcknowledgeDisabled
4 - Preset/Select Control
0x400x10InEntryAcknowledgeDisabled
0x400x11OutEntryAcknowledgeDisabled
0x440x14InDataPresetAcknowledgeDisabled
0x440x15OutDataPresetAcknowledgeDisabled
0x400x18InShift+AcknowledgeDisabled
0x400x19InShift-AcknowledgeDisabled
0x400x1AOutShift+AcknowledgeDisabled
0x400x1BOutShift-AcknowledgeDisabled
0x400x20InResetAcknowledgeDisabled
0x400x21OutResetAcknowledgeDisabled
0x400x22AlnResetAcknowledgeDisabled
0x400x23AOutResetAcknowledgeDisabled
0x440x31PrerollPresetAcknowledgeDisabled
0x400x40AutoModeOffAcknowledgeDisabledignored, Status bit remembered
0x400x41AutoModeOnAcknowledgeDisabledignored, Status bit remembered
0x410x37InputCheckAcknowledgeDisabled

Command Reply No Remote Notes
6 - Sense Request

0x61 0x0A TimeCodeGenSense — —
0x61 0x0C CurrentTimeSense — —
0x60 0x10 InDataSense InData Enabled
0x600x11OutDataSenseOutDataEnabled
0x600x12AlnDataSenseAlnDataEnabled
0x600x13AOutDataSenseAOutDataEnabled
0x610x20StatusSenseStatusDataEnabled
0x600x2BRemainTimeSenseRemainTimeDataEnabled
0x600x2ESpeedSenseSpeedDataEnabled
0x600x31PrerollTimeSensePreRollTimeDataEnabled
0x600x36TimerModeSenseTimerModeDataEnabled
0x600x3ERecordInhibitSenseRecordInhibitStatusEnabled

7 - Sense Reply

0x780x00Timer1DataCurrent Time and 00:00:00:00
0x780x04LTCUserBitsTimeDataCurrent Time and 00:00:00:00
0x780x06VITCUserBitsTimeDataCurrent Time and 00:00:00:00
0x740x06VITCTimeDataCurrent Time
0x740x07UserBitsVITCTimeData00:00:00:00
0x740x08GenTCDATACurrent Time
0x780x08GenTCUBDataCurrent Time and 00:00:00:00
0x740x09GenUBData00:00:00:00
0x74 0x10 InData— —
0x740x11OutData
0x740x12AlnData
0x740x13AOutData
0x740x14CorrectedLTCTimeDataCurrent Time
0x700x20StatusDataPlease see “Status Bits” sheet: Limited to 9 bytes of status, silently truncated
0x760x2BRemainTimeData
0x710x2ESpeedData
0x740x31PrerollTimeData
0x710x36TimerModeDataReturns 0 (TimeCode)
0x720x3ERecordInhibitStatus

Command Reply No Remote Notes
A - Advanced Media Protocol

0xA10x01AutoSkipAcknowledgeDisabled8-bit signed number of clips to skip from current clip
0xAX0x15ListNextIDIDListingEnabledwhen x = 0 single clip request when x = 1, # clips can be specified in the send data
0x200x29ClearPlaylistAcknowledgeDisabled
0x410x42SetPlaybackLoopAcknowledgeDisabledBit 0 loop mode enable, 0=false 1=trueBit 1 is single clip/timeline0=single clip1=timeline
0x410x44SetStopModeAcknowledgeDisabled0 = Off1 = Freeze on last frame2 = Freeze on next clip3 = Show black
0x4f0x16AppendPresetAcknowledgeDisabled2 Bytes for the length N of the clip nameN Bytes for each character of the clip name4 Byte in point timecode (format is FFSSMMHH)4 Byte out point timecode (format is FFSSMMHH)

Blackmagic Extensions

0x820x02BMDSeekToTimelinePositionAcknowledgeDisabled16-bit little endian fractional position [0..65535]
0x810x03BMDSeekRelativeClipAcknowledgeDisabledOne-byte signed integer, which is the number of clips to skip (negative for backwards).

RS-422开发人员信息

bit 7bit 6bit 5bit 4bit 3bit 2bit 1bit 0
Byte 000Cassette out0000Local
Byte 1Standby0Stop0RewindForwardRecordPlay
Byte 2Servo Lock0ShuttleJogVarDirectionStill1
Byte 3Auto Mode000Aout SetAin SetOut SetIn Set
Byte 4Select EEFull EELoop Playback00000
Byte 500000000
Byte 60Lamp StillLamp FwdLamp Rev0000
Byte 700000000
Byte 800Near EOTEOT0000
Byte 900000000
Variables
Cassette OutSet if no SSD is present
LocalSet if Remote is disabled (local control)
StandbySet if a disk is available
DirectionClear if playback is forwarding, set if playback is reversing
StillSet if playback is paused, or if in input preview mode
Auto ModeSet if in Auto Mode
Select EE, Full EESet if in input preview mode
Lamp Still/Fwd/RevSet according to playback speed and direction
Near EOTSet if total space left on available SSDs is less than 3 minutes
EOTSet if total space left on available SSDs is less than 30 seconds
Others
Cue Complete (byte 2, bit 0)Always 1: Cue requests are always instantaneous
HyperDeck Serial RS-422 Protocol
ProtocolBased on Sony 9-pin protocol
InterfaceBaud rate38.4 Kbps
1 start bit
8 data bits
1 stop bit
1 parity bit
Odd parity

通过网络传输文件

natural_image Front view of a 12G SDJ device rear panel showing ports, buttons, and ventilation slots (no readable text or symbols beyond branding)

DNxHD编解码器免费下载链接: http://www.avid.com/products/avid-dnxhr-and-dnxhd

Command Command Description
help or ? Provides help text on all commands and parameters
commands return commands in XML format
device info return device information
disk list query clip list on active disk
disk list: slot id: {n} query clip list on disk in slot {n}
quit disconnect ethernet control
ping check device is responding
preview: enable: {true/false}switch to preview or output
playplay from current timecode
play: speed: {-5000 to 5000}play at specific speed
play: loop: {true/false}play in loops or stop-at-end
play: single clip: {true/false}play current clip or all clips
playrangequery playrange setting
playrange set: clip id: {n}set play range to play clip {n} only
playrange set: clip id: {n} count: {m}set play range to {m} clips starting from clip {n}
playrange set: in: {inT} out: {outT}set play range to play between:- timecode {inT} and timecode {outT}
playrange set: timeline in: {in} timeline out:{out}set play range in units of frames between:- timeline position {in} and position {out} clear/reset play range setting
playrange clearclear/reset play range setting
play on startupquery unit play on startup state
play on startup: enable: {true/false}enable or disable play on startup
play on startup: single clip: {true/false}play single clip or all clips on startup
play option query play options
play option: stop mode:{lastframe/nextframe/black}set output frame when playback stops
recordrecord from current input
record: name: {name}record named clip
record spillspill current recording to next slot

Command Command Description

record: spill: slot id: {n}spill current recording to specified slotuse current id to spill to same slot
stop stop playback or recording
clips count query number of clips on timeline
clips get query all timeline clips
clips get: clip id: {n} query a timeline clip info
clips get: clip id: {n} count: {m} query m clips starting from n
clips get: version: {1/2}query clip info using specified output version:version 1: is: name startT durationversion 2: id: startT duration inT outT name
clips add: name: {name} append a clip to timeline
clips add: clip id: {n} name: {name} insert clip before existing clip {n}
clips add: in: {inT} out: {outT} name: {name} append the {inT} to {outT} portion of clip
clips remove: clip id: {n}remove clip {n} from the timeline(invalidates clip ids following clip {n})
clips clear empty timeline clip list
transport info query current activity
slot info query active slot
slot info: slot id: {n} query slot {n}
slot select: slot id: {n} switch to specified slot
slot select: video format: {format}load clips of specified format
slot unblockunblock active slot
slot unblock: slot id: {n}unblock slot {n}
cache infoquery cache status
dynamic rangequery dynamic range settings
dynamic range: playback override:{off/Rec709/Rec2020_SDR/HLG/ST2084_300/ST2084_500/ST2084_800/ST2084_1000/ST2084_2000/ST2084_4000/ST2084set playback dynamic range override
dynamic range: record override:{off/Rec709/Rec2020_SDR/HLG/ST2084_300/ST2084_500/ST2084_800/ST2084_1000/ST2084_2000/ST2084_4000/ST2048}set record dynamic range override
notifyquery notification status
notify: remote: {true/false}set remote notifications
notify: transport: {true/false}set transport notifications
notify: slot: {true/false}set slot notifications
notify: configuration: {true/false}set configuration notifications
notify: dropped frames: {true/false}set dropped frames notifications
notify: display timecode: {true/false}set display timecode notifications

Command Command Description

notify: timeline position: {true/false} set playback timeline position notifications
notify: playrange: {true/false} set playrange notifications
notify: cache: {true/false} set cache notifications
notify: dynamic range: {true/false} set dynamic range settings notifications
notify: slate: {true/false} set digital slate notifications
goto: clip id: {start/end} goto first clip or last clip
goto: clip id: {n} goto clip id {n}
goto: clip id: +{n} go forward {n} clips
goto: clip id: -(n) go backward {n} clips
goto: clip: {n} goto frame position {n} within current clip
goto: clip: +{n} go forward {n} frames within current clip
goto: clip: -(n) go backward {n} frames within current clip
goto: clip: {start/end}goto start or end of clip
goto: timeline: {n}goto frame position {n} within timeline
goto: timeline: +{n}o forward {n} frames within timeline
goto: timeline: -(n}go backward {n} frames within timeline
goto: timeline: {start/end}goto start or end of timeline
goto: timecode: {timecode}goto specified timecode
goto: timecode: +{timecode}go forward {timecode} duration
goto: timecode: -(timecode}go backward {timecode} duration
goto: slot id: {n}goto slot id {n}
jog: timecode: {timecode}jog to timecode
jog: timecode: +{timecode}jog forward {timecode} duration
jog: timecode: -(timecode}jog backward {timecode} duration
shuttle: speed: (-5000 to 5000)shuttle with speed
remotequery unit remote control state
remote: enable: {true/false}enable or disable remote control
remote: override: {true/false}session override remote control
configurationquery configuration settings
configuration: video input: SDIswitch to SDI input
configuration: video input: HDMIswitch to HDMI input
configuration: video input: componentswitch to component input
configuration: audio input: embeddedcapture embedded audio
configuration: audio input: XLRcapture XLR audio
configuration: audio input: RCAcapture RCA audio
configuration: file format: {format}switch to specific file format
configuration: audio codec: PCMswitch to PCM audio
configuration: audio codec: AACswitch to AAC audio

Command Command Description

configuration: timecode input:{external/embedded/preset/clip}change the timecode input
configuration: timecode output:{clip/timeline/internal}change the timecode output
configuration: timecode preference:{default/dropframe/nondropframe}whether or not to use drop frame timecodes when not otherwise specified
configuration: timecode preset:{timecode}set the timecode preset
configuration: audio input channels: {n} set the number of audio channels recorded to {n}
configuration: record trigger:{none/recordbit/timecoderun}change the record trigger
configuration: record prefix: {name} set the record prefix name (supports UTF-8 name)
configuration: append timestamp:{true/false}append timestamp to recorded filename
configuration: xlr input id: {n} xlr type:{line/mic}configure xlr input typemultiple xlr inputs can be configured in a single command
configuration: genlock input resync:{true/false}enable or disable genlock input resync
uptime return time since last boot
format: prepare: {format} prepare a disk formatting operation to filesystem {format}
format: confirm: {token} perform a pre-prepared formatting operation using token
identify: enable: {true/false} identify the device
watchdog: period: {period in seconds} client connection timeout
reboot reboot device
slate clips slate clips information
slate project slate project information
slate project:←camera: {index}←set camera index e.g. A

Command Combinations

You can combine the parameters into a single command, for example:

play: speed: 200 loop: true single clip: true

Or for configuration:

configuration: video input: SDI audio input: XLR

Or to switch to the second disk, but only play NTSC clips:

slot select: slot id: 2 video format: NTSC

Using XML

While you can use the Terminal to talk to HyperDeck, if you are writing software, you can use XML to confirm the existence of a specific command based on the firmware of the HyperDeck you are communicating with. This helps your software user interface adjust to the capabilities of the specific HyperDeck model and software version.

Protocol Details

Connection

The HyperDeck Ethernet server listens on TCP port 9993.

Basic syntax

The HyperDeck protocol is a line oriented text protocol. Lines from the server will be separated by an ascii CR LF sequence. Messages from the client may be separated by LF or CR LF.

New lines are represented in this document as a "←" symbol.

Single line command syntax

Command parameters are usually optional. A command with no parameters is terminated with a new line:

{Command name} 

If parameters are specified, the command name is followed by a colon, then pairs of parameter names and values. Each parameter name is terminated with a colon character:

{Command name}: {Parameter}: {Value} {Parameter}: {Value} ... 

Multiline command syntax

The HyperDeck protocol also supports an equivalent multiline syntax where each parameter-value pair is entered on a new line. E.g.

{Command name}:←
{Pa ra m e t e r}: { Va lu e}←
{Pa ra m e t e r}: { Va lu e}← 

Response syntax

Simple responses from the server consist of a three digit response code and descriptive text terminated by a new line:

{Response code} {Response text} 

If a response carries parameters, the response text is terminated with a colon, and parameter name and value pairs follow on subsequent lines until a blank line is returned:

{Response code} {Response text}:←
{Pa ra m e t e r}: { Va lu e}←
{Pa ra m e t e r}: { Va lu e}←
...
← 

Successful response codes

A simple acknowledgement of a command is indicated with a response code of 200:

200 ok← 

Other successful responses carry parameters and are indicated with response codes in the range of 201 to 299.

Failure response codes

Failure responses to commands are indicated with response codes in the range of 100 to 199:

100 syntax error
101 unsupported parameter
102 invalid value
103 unsupported
104 disk full
105 no disk
106 disk error
107 timeline empty
108 internal error
109 out of range
110 no input
111 remote control disabled
112 clip not found
120 connection rejected
150 invalid state
151 invalid codec
160 invalid format
161 invalid token
162 format not prepared
163 parameterized single line command not supported 

Asynchronous response codes

The server may return asynchronous messages at any time. These responses are indicated with response codes in the range of 500 to 599:

5xx {Response Text}:←
{Pa ra m e t e r}: {Va lu e}←
{Pa ra m e t e r}: {Va lu e}←
← 

Connection response

On connection, an asynchronous message will be delivered:

500 connection info:←
protocol version: {Version}←
model: {Model Name}← 

Connection rejection

Only one client may connect to the server at a time. If other clients attempt to connect concurrently, they will receive an error and be disconnected:

120 connection rejected 

Timecode syntax

Timecodes are expressed as non-drop-frame timecode in the format:

HH:MM:SS:FF

Handling of deck "remote" state

The “remote” command may be used to enable or disable the remote control of the deck. Any attempt to change the deck state over ethernet while remote access is disabled will generate an error:

111 remote control disabled 

To enable or disable remote control:

remote: enable: {"true", "false"} 

The current remote control state may be overridden allowing remote access over ethernet irrespective of the current remote control state:

remote: override: {"true", "false"} 

The override state is only valid for the currently connected ethernet client and only while the connection remains open.

The “remote” command may be used to query the remote control state of the deck by specifying no parameters:

remote 

The deck will return the current remote control state:

210 remote info:←
enabled: {"true", "false"}
←
override: {"true", "false"}
←

Asynchronous remote control information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in remote state will generate a "510 remote info:" asynchronous message with the same parameters as the "210 remote info:" message.

Closing connection

The "quit" command instructs the server to cleanly shut down the connection:

quit 

Checking connection status

The "ping" command has no function other than to determine if the server is responding:

ping← 

Getting help

The "help" or "?" commands return human readable help text describing all available commands and parameters:

help 

Or:

?← 

The server will respond with a list of all supported commands:

201 help:
{Help Tex t}
{Help Tex t} 

Switching to preview mode

The "preview" command instructs the deck to switch between preview mode and output mode:

preview: enable: {"true", "false"} 

Playback will be stopped when the deck is switched to preview mode. Capturing will be stopped when the deck is switched to output mode.

Controlling device playback

The "play" command instructs the deck to start playing:

play← 

The play command accepts a number of parameters which may be used together in most combinations.

By default, the deck will play all remaining clips on the timeline then stop.

The "single clip" parameter may be used to override this behavior:

play: single clip: {"true", "false"} 

By default, the deck will play at normal (100%) speed. An alternate speed may be specified in percentage between -1600 and 1600:

play: speed: {$ normal speed} 

By default, the deck will stop playing when it reaches to the end of the timeline. The "loop" parameter may be used to override this behavior:

play: loop: {"true", "false"} 

The “playrange” command instructs the deck to play all the clips. To override this behavior: and select a particular clip:

playrange set: clip id: {Clip ID} 

To only play a certain timecode range:

playrange set: in: {in timecode} out: {out timecode} 

To clear a set playrange and return to the default value:

playrange clear 

The “play on startup command” instructs the deck on what action to take on startup. By default, the deck will not play. Use the “enable” command to start playback after each power up.

play on startup: enable { "true", "false" } 

By default, the unit will play back all clips on startup. Use the "single clip" command to override.

play on startup: single clip: {"true", "false"} 

Stopping deck operation

The "stop" command instructs the deck to stop the current playback or capture:

stop 

Changing timeline position

The "goto" command instructs the deck to switch to playback mode and change its position within the timeline.

To go to the start of a specific clip:

goto: clip id: {Clip ID} 

To move forward/back {count} clips from the current clip on the current timeline:

goto: clip id: +/- {count} 

Note that if the resultant clip id goes beyond the first or last clip on timeline, it will be clamp at the first or last clip.

To go to the start or end of the current clip:

goto: clip: {"start", "end"} 

To go to the start of the first clip or the end of the last clip:

goto: timeline: { "start", "end"} 

To go to a specified timecode:

goto: timecode: {timecode} 

To move forward or back a specified duration in timecode:

goto: timecode: {“+”, “-”} {duration in timecode} 

To specify between slot 1 and slot 2:

goto: slot id: {Slot ID} 

Note that only one parameter/value pair is allowed for each goto command.

Enumerating supported commands and parameters

The "commands" command returns the supported commands:

commands 

The command list is returned in a computer readable XML format:

212 commands:
<commands>
<command name="..."><parameter name="..."/>...</command>
<command name="..."><parameter name="..."/>...</command>
...
</commands> 

More XML tokens and parameters may be added in later releases.

Controlling asynchronous notifications

The "notify" command may be used to enable or disable asynchronous notifications from the server.

To enable or disable transport notifications:

notify: transport: {"true", "false"} 

To enable or disable slot notifications:

notify: slot: {"true", "false"} 

To enable or disable remote notifications:

notify: remote: {"true", "false"} 

To enable or disable configuration notifications:

notify: configuration: {"true", "false"} 

Multiple parameters may be specified. If no parameters are specified, the server returns the current state of all notifications:

209 notify:
transport: { "true", "false" }←
slot: { "true", "false" }←
remote: { "true", "false" }←
configuration: { "true", "false" }←
dropped frames: { "true", "false" }←
display timecode: { "true", "false" }←
timeline position: { "true", "false" }←
playrange: { "true", "false" }←
cache: { "true", "false" }←
dynamic range: { "true", "false" }←
slate: { "true", "false" }← 

Retrieving device information

The "device info" command returns information about the connected deck device:

device info 

The server will respond with:

204 device info:←
protocol version: {Version}←
model: {Model Name}←
unique id: {unique alphanumeric identifier}←
slot count: {number of storage slots}←
software version: {software version}← 

Retrieving slot information

The "slot info" command returns information about a slot. Without parameters, the command returns information for the currently selected slot:

slot info 

If a slot Id is specified, that slot will be queried:

slot info: slot id: {Slot ID} 

The server will respond with slot specific information:

202 slot info:←
slot id: {Slot ID}←
    status: {"empty", "mounting", "error", "mounted"}←
volume name: {Volume name}←
recording time: {recording time available in seconds}←
video format: {disk's default video format}←
blocked: {"true", "false"}← 

Asynchronous slot information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in slot state will generate a "502 slot info:" asynchronous message with the same parameters as the "202 slot info:" message.

Retrieving clip information

The "disk list" command returns the information for each playable clip on a given disk. Without parameters, the command returns information for the current active disk:

disk list 

If a slot id is specified, the disk in that slot will be queried:

disk list: slot id: {Slot ID} 

The server responds with the list of all playable clips on the disk in the format of: Index, name, formats, and duration in timecode:

206 disk list:←
slot id: {Slot ID}←
{clip index}: {name} {file format} {video format} {Duration timecode}←
{clip index}: {name} {file format} {video format} {Duration timecode}←
...
← 

Note that the clip index starts from 1.

Retrieving clip count

The "clips count" command returns the number of clips on the current timeline:

clips count ← 

The server responds with the number of clips:

214 clips count: ←
clip count: {Count}← 

Retrieving timeline information

The "clips get" command returns information for each available clip on the current timeline. Without parameters, the command returns information for all clips on timeline:

clips get← 

The server responds with a list of clip IDs, names and timecodes:

205 clips info:←
clip count: {Count}←
{Clip ID}: {Name} {Start timecode} {Duration timecode}←
{Clip ID}: {Name} {Start timecode} {Duration timecode}←
... 

Retrieving transport information

The "transport info" command returns the state of the transport:

transport info 

The server responds with transport specific information:

208 transport info:
status: { "preview", "stopped", "play", "forward", "rewind", "jog", "shuttle", "record"}←
speed: {Play speed between -5000 and 5000 %}←
slot id: {Slot ID or "none"}←
clip id: {Clip ID or "none"}←
single clip: { "true", "false"}←
display timecode: {timecode}←
timecode: {timecode}←
video format: {Video format}←
loop: { "true", "false"}←
timeline: {n}←
input video format: {Video format"}←
dynamic range: { "off", "Rec709", "Rec2020_SDR", "HLG", "ST2084_300", "ST2084_500", "ST2084_800", "ST2084_1000", "ST2084_2000", "ST2084_4000", "ST2048" or "none"}← 

The "timecode" value is the timecode within the current timeline for playback or the clip for record. The "display timecode" is the timecode displayed on the front of the deck. The two timecodes will differ in some deck modes.

Asynchronous transport information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in transport state will generate a "508 transport info:" asynchronous message with the same parameters as the "208 transport info:" message.

Video Formats

The following video formats are currently supported on HyperDeck Studio:

NTSC, PAL, NTSCp, PALp

720p50, 720p5994, 720p60

1080p23976, 1080p24, 1080p25, 1080p2997, 1080p30

1080i50, 1080i5994, 1080i60

HyperDeck Studio Pro and Plus models support these 4k formats:

4Kp23976, 4Kp24, 4Kp25, 4Kp2997, 4Kp30

HyperDeck Studio 4K Pro adds support for the following 4k formats:

4Kp50, 4Kp5994, 4Kp60

Video format support may vary between models and software releases.

File Formats

All HyperDeck models currently support the following file formats:

H.264High_SDI

H.264High

H.264Medium

H.264Low

QuickTimeProResHQ

QuickTimeProRes

QuickTimeProResLT

QuickTimeProResProxy

QuickTimeDNxHD220x

DNxHD220x

QuickTimeDNxHD145

DNxHD145

QuickTimeDNxHD45

DNxHD45

HyperDeck Studio 4K Pro also supports the following file formats:

H.265High_SDI

H.265High

H.265Medium

H.265Low

QuickTimeDNxHR_HQX

DNxHR_HQX 4Kp60

QuickTimeDNxHR_SQ

DNxHR_SQ

QuickTimeDNxHR_LB

DNxHR_LB

Supported file formats may vary between models and software releases.

Querying and updating configuration information

The "configuration" command may be used to query the current configuration of the deck:

configuration 

The server returns the configuration of the deck:

211 configuration:
audio input: { "embedded", "XLR", "RCA" }←
audio mapping: {n}←
video input: { "SDI", "HDMI", "component", "composite" }←
file format: {format}←
audio codec: { "PCM", "AAC" }←
timecode input: { "external", "embedded", "preset", "clip" }←
timecode output: { "clip", "timeline" }←
timecode preference: { "default", "dropframe", "nondropframe" }←
timecode preset: {timecode}←
audio input channels: {n}←
record trigger: { "none", "recordbit", "timecoderun" }←
record prefix: {name}←
append timestamp: { "true", "false" }← 

One or more configuration parameters may be specified to change the configuration of the deck.

To change the current video input:

configuration: video input: {"SDI", "HDMI", "component"} 

Valid video inputs may vary between models. To configure the current audio input:

configuration: audio input: {"embedded", "XLR", "RCA"} 

Valid audio inputs may vary between models.

To configure the current file format:

configuration: file format: {File format} 

Note that changes to the file format may require the deck to reset, which will cause the client connection to be closed. In such case, response code 213 will be returned (instead of 200) before the client connection is closed:

"213 deck rebooting" 

Asynchronous configuration information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in configuration will generate a "511 configuration:" asynchronous message with the same parameters as the "211 configuration:" message.

Selecting active slot and video format

The "slot select" command instructs the deck to switch to a specified slot, or/and to select a specified output video format.

To switch to a specified slot:

slot select: slot id: {slot ID} 

To select the output video format:

slot select: video format: {video format} 

Either or all slot select parameters may be specified. Note that selecting video format will result in a rescan of the disk to reconstruct the timeline with all clips of the specified video format.

Clearing the current timeline

The "clips clear" command instructs the deck to empty the current timeline:

clips clear 

The server responds with

200 ok← 

Adding a clip to the current timeline

The "clips add:" command instructs the deck to add a clip to the current timeline:

clips add: name: {"clip name"} 

The server responds with

200 ok← 

or in case of error

1xx {error description} 

Configuring the watchdog

The “watchdog” command instructs the deck to monitor the connected client and terminate the connection if the client is inactive for at least a specified period of time.

To configure the watchdog:

watchdog: period: {period in seconds} 

To avoid disconnection, the client must send a command to the server at least every [period] seconds. Note that if the period is set to 0 or less than 0, connection monitoring will be disabled.

帮助

获得帮助

Blackmagic Design HyperDeck Studio 4K Pro - 获得帮助 - 1

natural_image Circular portrait photo of a smiling man in a dark shirt against a gray background (no text or symbols)

환영합니다

natural_image Front view of a black audio workstation with multiple video player channels and playback controls (no readable text or symbols)

HyperDeck Studio HD Pro와 HyperDeck Studio 4K Pro

Blackmagic Design HyperDeck Studio 4K Pro - 환영합니다 - 1

natural_image Black audio player interface with playback controls and digital display (no readable text or symbols)

HyperDeck Studio HD Mini

Blackmagic Design HyperDeck Studio 4K Pro - 환영합니다 - 2

natural_image Black audio recording device with multiple control knobs and a digital display showing time, timestamp, and preview (no readable text or symbols on main body)

HyperDeck Studio HD Plus

natural_image Illustration of hands interacting with a device panel showing playback controls and a video player interface (no readable text or symbols)

미디어 연결하기

natural_image Diagram of a server rack with ports and an orange arrow indicating a specific component (no text or symbols present)

미디어 바

LUT 확인하기

natural_image Front view of a rack-mounted server unit with control panel and drive bays (no visible text or labels)
natural_image Front view of a computer interface panel with ports and buttons (no text or symbols visible)
Command Reply No Remote Notes
0 - System Control
0x00 0x11 DeviceTypeRequestNTSC: 0xF0E0PAL: 0xF1E024P: 0xF2E0Enabled
1 - Slave Response
0x200x00StopAcknowledgeDisabled
0x200x01PlayAcknowledgeDisabled
0x200x02RecordAcknowledgeDisabled
0x200x04StandbyOffAcknowledgeDisabled
0x200x05StandbyOnAcknowledgeDisabled
0x200x0FEjectAcknowledgeDisabled
0x200x10FastFwdAcknowledgeDisabled
0x210x11JogFwd1AcknowledgeDisabled
0x220x11JogFwd2AcknowledgeDisabledTreated as N=1;Same as JogFwd1
0x210x12VarFwd1AcknowledgeDisabledUses ShuttleFwd1
0x220x12VarFwd2AcknowledgeDisabledTreated as N=1;Same as VarFwd1
0x210x13ShuttleFwd1AcknowledgeDisabled
0x220x13ShuttleFwd2AcknowledgeDisabledTreated as N=1;Same as ShuttleFwd1
0x200x20RewindAcknowledgeDisabled
0x210x21JogRev1AcknowledgeDisabled
0x220x21JogRev2AcknowledgeDisabledTreated as N=1;Same as JogRev1
0x210x22VarRev1AcknowledgeDisabledUses ShuttleRev1

Command Reply No Remote Notes

0x22 0x22 VarRev2 Acknowledge DisabledTreated as N=1;Same as VarRev1
0x210x23ShuttleRev1AcknowledgeDisabled
0x220x23ShuttleRev2AcknowledgeDisabledTreated as N=1;Same as ShuttleRev1
0x200x30PrerollAcknowledgeDisabled
0x24 0x31 CueData Acknowledge Disabled
0x200x34SyncPlayAcknowledgeDisabled
0x200x40PreviewAcknowledgeDisabledStatus bits are set
0x200x41ReviewAcknowledgeDisabledStatus bits are set
0x200x43OutpointPreviewAcknowledgeDisabled
0x220x5CDMCSetFwdAcknowledgeDisabled
0x220x5DDMCSetRevAcknowledgeDisabled
0x200x60FullEEOffAcknowledgeDisabled
0x200x61FullEEOnAcknowledgeDisabled
0x200x63SelectEEOnAcknowledgeDisabled
4 - Preset/Select Control
0x400x10InEntryAcknowledgeDisabled
0x400x11OutEntryAcknowledgeDisabled
0x440x14InDataPresetAcknowledgeDisabled
0x440x15OutDataPresetAcknowledgeDisabled
0x400x18InShift+AcknowledgeDisabled
0x400x19InShift-AcknowledgeDisabled
0x400x1AOutShift+AcknowledgeDisabled
0x400x1BOutShift-AcknowledgeDisabled
0x400x20InResetAcknowledgeDisabled
0x400x21OutResetAcknowledgeDisabled
0x400x22AlnResetAcknowledgeDisabled
0x400x23AOutResetAcknowledgeDisabled
0x440x31PrerollPresetAcknowledgeDisabled
0x400x40AutoModeOffAcknowledgeDisabledignored, Status bit remembered
0x400x41AutoModeOnAcknowledgeDisabledignored, Status bit remembered
0x410x37InputCheckAcknowledgeDisabled

Command Reply No Remote Notes
6 - Sense Request

0x61 0x0A TimeCodeGenSense — —
0x61 0x0C CurrentTimeSense — —
0x60 0x10 InDataSense InData Enabled
0x600x11OutDataSenseOutDataEnabled
0x600x12AlnDataSenseAlnDataEnabled
0x600x13AOutDataSenseAOutDataEnabled
0x610x20StatusSenseStatusDataEnabled
0x600x2BRemainTimeSenseRemainTimeDataEnabled
0x600x2ESpeedSenseSpeedDataEnabled
0x600x31PrerollTimeSensePreRollTimeDataEnabled
0x600x36TimerModeSenseTimerModeDataEnabled
0x600x3ERecordInhibitSenseRecordInhibitStatusEnabled

7 - Sense Reply

0x780x00Timer1DataCurrent Time and 00:00:00:00
0x780x04LTCUserBitsTimeDataCurrent Time and 00:00:00:00
0x780x06VITCUserBitsTimeDataCurrent Time and 00:00:00:00
0x740x06VITCTimeDataCurrent Time
0x740x07UserBitsVITCTimeData00:00:00:00
0x740x08GenTCDATACurrent Time
0x780x08GenTCUBDataCurrent Time and 00:00:00:00
0x740x09GenUBData00:00:00:00
0x74 0x10 InData— —
0x740x11OutData
0x740x12AlnData
0x740x13AOutData
0x740x14CorrectedLTCTimeDataCurrent Time
0x700x20StatusDataPlease see “Status Bits” sheet: Limited to 9 bytes of status, silently truncated
0x760x2BRemainTimeData
0x710x2ESpeedData
0x740x31PrerollTimeData
0x710x36TimerModeDataReturns 0 (TimeCode)
0x720x3ERecordInhibitStatus

Command Reply No Remote Notes
A - Advanced Media Protocol

0xA10x01AutoSkipAcknowledgeDisabled8-bit signed number of clips to skip from current clip
0xAX0x15ListNextIDIDListingEnabledwhen x = 0 single clip request when x = 1, # clips can be specified in the send data
0x200x29ClearPlaylistAcknowledgeDisabled
0x410x42SetPlaybackLoopAcknowledgeDisabledBit 0 loop mode enable, 0=false 1=trueBit 1 is single clip/timeline0=single clip1=timeline
0x410x44SetStopModeAcknowledgeDisabled0 = Off1 = Freeze on last frame2 = Freeze on next clip3 = Show black
0x4f0x16AppendPresetAcknowledgeDisabled2 Bytes for the length N of the clip nameN Bytes for each character of the clip name4 Byte in point timecode (format is FFSSMMHH)4 Byte out point timecode (format is FFSSMMHH)

Blackmagic Extensions

0x820x02BMDSeekToTimelinePositionAcknowledgeDisabled16-bit little endian fractional position [0..65535]
0x810x03BMDSeekRelativeClipAcknowledgeDisabledOne-byte signed integer, which is the number of clips to skip (negative for backwards).

RS-422 개발자 정보

bit 7bit 6bit 5bit 4bit 3bit 2bit 1bit 0
Byte 000Cassette out0000Local
Byte 1Standby0Stop0RewindForwardRecordPlay
Byte 2Servo Lock0ShuttleJogVarDirectionStill1
Byte 3Auto Mode000Aout SetAin SetOut SetIn Set
Byte 4Select EEFull EELoop Playback00000
Byte 500000000
Byte 60Lamp StillLamp FwdLamp Rev0000
Byte 700000000
Byte 800Near EOTEOT0000
Byte 900000000
Variables
Cassette OutSet if no SSD is present
LocalSet if Remote is disabled (local control)
StandbySet if a disk is available
DirectionClear if playback is forwarding, set if playback is reversing
StillSet if playback is paused, or if in input preview mode
Auto ModeSet if in Auto Mode
Select EE, Full EESet if in input preview mode
Lamp Still/Fwd/RevSet according to playback speed and direction
Near EOTSet if total space left on available SSDs is less than 3 minutes
EOTSet if total space left on available SSDs is less than 30 seconds
Others
Cue Complete (byte 2, bit 0)Always 1: Cue requests are always instantaneous
HyperDeck Serial RS-422 Protocol
ProtocolBased on Sony 9-pin protocol
InterfaceBaud rate38.4 Kbps
1 start bit
8 data bits
1 stop bit
1 parity bit
Odd parity

네트워크를 통해 파일 전송하기

natural_image Front view of a 12G SDJ computer interface panel showing ports, buttons, and memory slots (no text or symbols beyond branding)
Command Command Description
help or ? Provides help text on all commands and parameters
commands return commands in XML format
device info return device information
disk list query clip list on active disk
disk list: slot id: {n} query clip list on disk in slot {n}
quit disconnect ethernet control
ping check device is responding
preview: enable: {true/false} switch to preview or output
play play from current timecode
play: speed: { -5000 to 5000} play at specific speed
play: loop: {true/false} play in loops or stop-at-end
play: single clip: {true/false}play current clip or all clips
playrangequery playrange setting
playrange set: clip id: {n}set play range to play clip {n} only
playrange set: clip id: {n} count: {m}set play range to {m} clips starting from clip {n}
playrange set: in: {inT} out: {outT}set play range to play between:- timecode {inT} and timecode {outT}
playrange set: timeline in: {in} timeline out:{out}set play range in units of frames between:- timeline position {in} and position {out} clear/reset play range setting
playrange clearclear/reset play range setting
play on startupquery unit play on startup state
play on startup: enable: {true/false}enable or disable play on startup
play on startup: single clip: {true/false}play single clip or all clips on startup
play option query play options
play option: stop mode:{lastframe/nextframe/black}set output frame when playback stops
recordrecord from current input
record: name: {name}record named clip
record spillspill current recording to next slot

Command Command Description

record: spill: slot id: {n}spill current recording to specified slotuse current id to spill to same slot
stop stop playback or recording
clips count query number of clips on timeline
clips get query all timeline clips
clips get: clip id: {n} query a timeline clip info
clips get: clip id: {n} count: {m} query m clips starting from n
clips get: version: {1/2}query clip info using specified output version:version 1: is: name startT durationversion 2: id: startT duration inT outT name
clips add: name: {name} append a clip to timeline
clips add: clip id: {n} name: {name} insert clip before existing clip {n}
clips add: in: {inT} out: {outT} name: {name} append the {inT} to {outT} portion of clip
clips remove: clip id: {n}remove clip {n} from the timeline(invalidates clip ids following clip {n})
clips clear empty timeline clip list
transport info query current activity
slot info query active slot
slot info: slot id: {n} query slot {n}
slot select: slot id: {n} switch to specified slot
slot select: video format: {format}load clips of specified format
slot unblockunblock active slot
slot unblock: slot id: {n}unblock slot {n}
cache infoquery cache status
dynamic rangequery dynamic range settings
dynamic range: playback override:{off/Rec709/Rec2020_SDR/HLG/ST2084_300/ST2084_500/ST2084_800/ST2084_1000/ST2084_2000/ST2084_4000/ST2084set playback dynamic range override
dynamic range: record override:{off/Rec709/Rec2020_SDR/HLG/ST2084_300/ST2084_500/ST2084_800/ST2084_1000/ST2084_2000/ST2084_4000/ST2048}set record dynamic range override
notifyquery notification status
notify: remote: {true/false}set remote notifications
notify: transport: {true/false}set transport notifications
notify: slot: {true/false}set slot notifications
notify: configuration: {true/false}set configuration notifications
notify: dropped frames: {true/false}set dropped frames notifications
notify: display timecode: {true/false}set display timecode notifications

Command Command Description

notify: timeline position: {true/false} set playback timeline position notifications
notify: playrange: {true/false} set playrange notifications
notify: cache: {true/false} set cache notifications
notify: dynamic range: {true/false} set dynamic range settings notifications
notify: slate: {true/false} set digital slate notifications
goto: clip id: {start/end} goto first clip or last clip
goto: clip id: {n} goto clip id {n}
goto: clip id: +{n} go forward {n} clips
goto: clip id: -(n) go backward {n} clips
goto: clip: {n} goto frame position {n} within current clip
goto: clip: +{n} go forward {n} frames within current clip
goto: clip: -(n) go backward {n} frames within current clip
goto: clip: {start/end}goto start or end of clip
goto: timeline: {n}goto frame position {n} within timeline
goto: timeline: +{n}o forward {n} frames within timeline
goto: timeline: -(n}go backward {n} frames within timeline
goto: timeline: {start/end}goto start or end of timeline
goto: timecode: {timecode}goto specified timecode
goto: timecode: +{timecode}go forward {timecode} duration
goto: timecode: -(timecode}go backward {timecode} duration
goto: slot id: {n}goto slot id {n}
jog: timecode: {timecode}jog to timecode
jog: timecode: +{timecode}jog forward {timecode} duration
jog: timecode: -(timecode}jog backward {timecode} duration
shuttle: speed: {-5000 to 5000}shuttle with speed
remotequery unit remote control state
remote: enable: {true/false}enable or disable remote control
remote: override: {true/false}session override remote control
configurationquery configuration settings
configuration: video input: SDIswitch to SDI input
configuration: video input: HDMIswitch to HDMI input
configuration: video input: componentswitch to component input
configuration: audio input: embeddedcapture embedded audio
configuration: audio input: XLRcapture XLR audio
configuration: audio input: RCAcapture RCA audio
configuration: file format: {format}switch to specific file format
configuration: audio codec: PCMswitch to PCM audio
configuration: audio codec: AACswitch to AAC audio

Command Command Description

configuration: timecode input:{external/embedded/preset/clip}change the timecode input
configuration: timecode output:{clip/timeline/internal}change the timecode output
configuration: timecode preference:{default/dropframe/nondropframe}whether or not to use drop frame timecodes when not otherwise specified
configuration: timecode preset:{timecode}set the timecode preset
configuration: audio input channels: {n} set the number of audio channels recorded to {n}
configuration: record trigger:{none/recordbit/timecoderun}change the record trigger
configuration: record prefix: {name} set the record prefix name (supports UTF-8 name)
configuration: append timestamp:{true/false}append timestamp to recorded filename
configuration: xlr input id: {n} xlr type:{line/mic}configure xlr input typemultiple xlr inputs can be configured in a single command
configuration: genlock input resync:{true/false}enable or disable genlock input resync
uptime return time since last boot
format: prepare: {format} prepare a disk formatting operation to filesystem {format}
format: confirm: {token} perform a pre-prepared formatting operation using token
identify: enable: {true/false} identify the device
watchdog: period: {period in seconds} clientconnection timeout
reboot reboot device
slate clips slate clips information
slate project slate project information
slate project:←camera: {index}←set camera index e.g. A

Command Combinations

You can combine the parameters into a single command, for example:

play: speed: 200 loop: true single clip: true

Or for configuration:

configuration: video input: SDI audio input: XLR

Or to switch to the second disk, but only play NTSC clips:

slot select: slot id: 2 video format: NTSC

Using XML

While you can use the Terminal to talk to HyperDeck, if you are writing software, you can use XML to confirm the existence of a specific command based on the firmware of the HyperDeck you are communicating with. This helps your software user interface adjust to the capabilities of the specific HyperDeck model and software version.

Protocol Details

Connection

The HyperDeck Ethernet server listens on TCP port 9993.

Basic syntax

The HyperDeck protocol is a line oriented text protocol. Lines from the server will be separated by an ascii CR LF sequence. Messages from the client may be separated by LF or CR LF.

New lines are represented in this document as a "←" symbol.

Single line command syntax

Command parameters are usually optional. A command with no parameters is terminated with a new line:

{Command name} 

If parameters are specified, the command name is followed by a colon, then pairs of parameter names and values. Each parameter name is terminated with a colon character:

{Command name}: {Parameter}: {Value} {Parameter}: {Value} ... 

Multiline command syntax

The HyperDeck protocol also supports an equivalent multiline syntax where each parameter-value pair is entered on a new line. E.g.

{Command name}:←
{Pa ra m e t e r}: { Va lu e}←
{Pa ra m e t e r}: { Va lu e}← 

Response syntax

Simple responses from the server consist of a three digit response code and descriptive text terminated by a new line:

{Response code} {Response text} 

If a response carries parameters, the response text is terminated with a colon, and parameter name and value pairs follow on subsequent lines until a blank line is returned:

{Response code} {Response text}:←
{Pa ra m e t e r}: { Va lu e}←
{Pa ra m e t e r}: { Va lu e}←
...
← 

Successful response codes

A simple acknowledgement of a command is indicated with a response code of 200:

200 ok← 

Other successful responses carry parameters and are indicated with response codes in the range of 201 to 299.

Failure response codes

Failure responses to commands are indicated with response codes in the range of 100 to 199:

100 syntax error
101 unsupported parameter
102 invalid value
103 unsupported
104 disk full
105 no disk
106 disk error
107 timeline empty
108 internal error
109 out of range
110 no input
111 remote control disabled
112 clip not found
120 connection rejected
150 invalid state
151 invalid codec
160 invalid format
161 invalid token
162 format not prepared
163 parameterized single line command not supported 

Asynchronous response codes

The server may return asynchronous messages at any time. These responses are indicated with response codes in the range of 500 to 599:

5xx {Response Text}:←
{Pa ra m e t e r}: {Va lu e}←
{Pa ra m e t e r}: {Va lu e}←
← 

Connection response

On connection, an asynchronous message will be delivered:

500 connection info:←
protocol version: {Version}←
model: {Model Name}← 

Connection rejection

Only one client may connect to the server at a time. If other clients attempt to connect concurrently, they will receive an error and be disconnected:

120 connection rejected 

Timecode syntax

Timecodes are expressed as non-drop-frame timecode in the format:

HH:MM:SS:FF

Handling of deck "remote" state

The “remote” command may be used to enable or disable the remote control of the deck. Any attempt to change the deck state over ethernet while remote access is disabled will generate an error:

111 remote control disabled 

To enable or disable remote control:

remote: enable: {"true", "false"} 

The current remote control state may be overridden allowing remote access over ethernet irrespective of the current remote control state:

remote: override: {"true", "false"} 

The override state is only valid for the currently connected ethernet client and only while the connection remains open.

The “remote” command may be used to query the remote control state of the deck by specifying no parameters:

remote 

The deck will return the current remote control state:

210 remote info:←
enabled: {"true", "false"}
←
override: {"true", "false"}
←

Asynchronous remote control information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in remote state will generate a "510 remote info:" asynchronous message with the same parameters as the "210 remote info:" message.

Closing connection

The "quit" command instructs the server to cleanly shut down the connection:

quit 

Checking connection status

The "ping" command has no function other than to determine if the server is responding:

ping← 

Getting help

The "help" or "?" commands return human readable help text describing all available commands and parameters:

help 

Or:

?← 

The server will respond with a list of all supported commands:

201 help:
{Help Tex t}
{Help Tex t} 

Switching to preview mode

The "preview" command instructs the deck to switch between preview mode and output mode:

preview: enable: {"true", "false"} 

Playback will be stopped when the deck is switched to preview mode. Capturing will be stopped when the deck is switched to output mode.

Controlling device playback

The "play" command instructs the deck to start playing:

play← 

The play command accepts a number of parameters which may be used together in most combinations.

By default, the deck will play all remaining clips on the timeline then stop.

The "single clip" parameter may be used to override this behavior:

play: single clip: {"true", "false"} 

By default, the deck will play at normal (100%) speed. An alternate speed may be specified in percentage between -1600 and 1600:

play: speed: {$ normal speed} 

By default, the deck will stop playing when it reaches to the end of the timeline. The "loop" parameter may be used to override this behavior:

play: loop: {"true", "false"} 

The “playrange” command instructs the deck to play all the clips. To override this behavior: and select a particular clip:

playrange set: clip id: {Clip ID} 

To only play a certain timecode range:

playrange set: in: {in timecode} out: {out timecode} 

To clear a set playrange and return to the default value:

playrange clear 

The “play on startup command” instructs the deck on what action to take on startup. By default, the deck will not play. Use the “enable” command to start playback after each power up.

play on startup: enable { "true", "false" } 

By default, the unit will play back all clips on startup. Use the "single clip" command to override.

play on startup: single clip: {"true", "false"} 

Stopping deck operation

The "stop" command instructs the deck to stop the current playback or capture:

stop← 

Changing timeline position

The "goto" command instructs the deck to switch to playback mode and change its position within the timeline.

To go to the start of a specific clip:

goto: clip id: {Clip ID} 

To move forward/back {count} clips from the current clip on the current timeline:

goto: clip id: +/- {count} 

Note that if the resultant clip id goes beyond the first or last clip on timeline, it will be clamp at the first or last clip.

To go to the start or end of the current clip:

goto: clip: { "start", "end"} 

To go to the start of the first clip or the end of the last clip:

goto: timeline: { "start", "end"} 

To go to a specified timecode:

goto: timecode: {timecode} 

To move forward or back a specified duration in timecode:

goto: timecode: {"+", "-"}{duration in timecode} 

To specify between slot 1 and slot 2:

goto: slot id: {Slot ID} 

Note that only one parameter/value pair is allowed for each goto command.

Enumerating supported commands and parameters

The "commands" command returns the supported commands:

commands 

The command list is returned in a computer readable XML format:

212 commands:
<commands>
<command name="..."><parameter name="..."/>...</command>
<command name="..."><parameter name="..."/>...</command>
...
</commands> 

More XML tokens and parameters may be added in later releases.

Controlling asynchronous notifications

The "notify" command may be used to enable or disable asynchronous notifications from the server.

To enable or disable transport notifications:

notify: transport: {"true", "false"} 

To enable or disable slot notifications:

notify: slot: {"true", "false"} 

To enable or disable remote notifications:

notify: remote: {"true", "false"} 

To enable or disable configuration notifications:

notify: configuration: {"true", "false"} 

Multiple parameters may be specified. If no parameters are specified, the server returns the current state of all notifications:

209 notify:
transport: { "true", "false" }←
slot: { "true", "false" }←
remote: { "true", "false" }←
configuration: { "true", "false" }←
dropped frames: { "true", "false" }←
display timecode: { "true", "false" }←
timeline position: { "true", "false" }←
playrange: { "true", "false" }←
cache: { "true", "false" }←
dynamic range: { "true", "false" }←
slate: { "true", "false" }← 

Retrieving device information

The "device info" command returns information about the connected deck device:

device info 

The server will respond with:

204 device info:←
protocol version: {Version}←
model: {Model Name}←
unique id: {unique alphanumeric identifier}←
slot count: {number of storage slots}←
software version: {software version}← 

Retrieving slot information

The "slot info" command returns information about a slot. Without parameters, the command returns information for the currently selected slot:

slot info 

If a slot Id is specified, that slot will be queried:

slot info: slot id: {Slot ID} 

The server will respond with slot specific information:

202 slot info:←
slot id: {Slot ID}←
    status: {"empty", "mounting", "error", "mounted"}←
volume name: {Volume name}←
recording time: {recording time available in seconds}←
video format: {disk's default video format}←
blocked: {"true", "false"}← 

Asynchronous slot information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in slot state will generate a "502 slot info:" asynchronous message with the same parameters as the "202 slot info:" message.

Retrieving clip information

The "disk list" command returns the information for each playable clip on a given disk. Without parameters, the command returns information for the current active disk:

disk list 

If a slot id is specified, the disk in that slot will be queried:

disk list: slot id: {Slot ID} 

The server responds with the list of all playable clips on the disk in the format of: Index, name, formats, and duration in timecode:

206 disk list:←
slot id: {Slot ID}←
{clip index}: {name} {file format} {video format} {Duration timecode}←
{clip index}: {name} {file format} {video format} {Duration timecode}←
...
← 

Note that the clip index starts from 1.

Retrieving clip count

The "clips count" command returns the number of clips on the current timeline:

clips count ← 

The server responds with the number of clips:

214 clips count: ←
clip count: {Count}← 

Retrieving timeline information

The "clips get" command returns information for each available clip on the current timeline. Without parameters, the command returns information for all clips on timeline:

clips get 

The server responds with a list of clip IDs, names and timecodes:

205 clips info:←
clip count: {Count}←
{Clip ID}: {Name} {Start timecode} {Duration timecode}←
{Clip ID}: {Name} {Start timecode} {Duration timecode}←
... 

Retrieving transport information

The "transport info" command returns the state of the transport:

transport info 

The server responds with transport specific information:

208 transport info:
status: { "preview", "stopped", "play", "forward", "rewind", "jog", "shuttle", "record"}←
speed: {Play speed between -5000 and 5000 %}←
slot id: {Slot ID or "none"}←
clip id: {Clip ID or "none"}←
single clip: { "true", "false"}←
display timecode: {timecode}←
timecode: {timecode}←
video format: {Video format}←
loop: { "true", "false"}←
timeline: {n}←
input video format: {Video format"}←
dynamic range: { "off", "Rec709", "Rec2020_SDR", "HLG", "ST2084_300", "ST2084_500", "ST2084_800", "ST2084_1000", "ST2084_2000", "ST2084_4000", "ST2048" or "none"}← 

The "timecode" value is the timecode within the current timeline for playback or the clip for record. The "display timecode" is the timecode displayed on the front of the deck. The two timecodes will differ in some deck modes.

Asynchronous transport information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in transport state will generate a "508 transport info:" asynchronous message with the same parameters as the "208 transport info:" message.

Video Formats

The following video formats are currently supported on HyperDeck Studio:

NTSC, PAL, NTSCp, PALp

720p50, 720p5994, 720p60

1080p23976, 1080p24, 1080p25, 1080p2997, 1080p30

1080i50, 1080i5994, 1080i60

HyperDeck Studio Pro and Plus models support these 4k formats:

4Kp23976, 4Kp24, 4Kp25, 4Kp2997, 4Kp30

HyperDeck Studio 4K Pro adds support for the following 4k formats:

4Kp50, 4Kp5994, 4Kp60

Video format support may vary between models and software releases.

File Formats

All HyperDeck models currently support the following file formats:

H.264High_SDI

H.264High

H.264Medium

H.264Low

QuickTimeProResHQ

QuickTimeProRes

QuickTimeProResLT

QuickTimeProResProxy

QuickTimeDNxHD220x

DNxHD220x

QuickTimeDNxHD145

DNxHD145

QuickTimeDNxHD45

DNxHD45

HyperDeck Studio 4K Pro also supports the following file formats:

H.265High_SDI

H.265High

H.265Medium

H.265Low

QuickTimeDNxHR_HQX

DNxHR_HQX 4Kp60

QuickTimeDNxHR_SQ

DNxHR_SQ

QuickTimeDNxHR_LB

DNxHR_LB

Supported file formats may vary between models and software releases.

Querying and updating configuration information

The "configuration" command may be used to query the current configuration of the deck:

configuration 

The server returns the configuration of the deck:

211 configuration:
audio input: { "embedded", "XLR", "RCA" } 
audio mapping: {n} 
video input: { "SDI", "HDMI", "component", "composite" } 
file format: {format} 
audio codec: { "PCM", "AAC" } 
timecode input: { "external", "embedded", "preset", "clip" } 
timecode output: { "clip", "timeline" } 
timecode preference: { "default", "dropframe", "nondropframe" } 
timecode preset: {timecode} 
audio input channels: {n} 
record trigger: { "none", "recordbit", "timecoderun" } 
record prefix: {name} 
append timestamp: { "true", "false" } 

One or more configuration parameters may be specified to change the configuration of the deck.

To change the current video input:

configuration: video input: {"SDI", "HDMI", "component"} 

Valid video inputs may vary between models. To configure the current audio input:

configuration: audio input: {"embedded", "XLR", "RCA"} 

Valid audio inputs may vary between models.

To configure the current file format:

configuration: file format: {File format} 

Note that changes to the file format may require the deck to reset, which will cause the client connection to be closed. In such case, response code 213 will be returned (instead of 200) before the client connection is closed:

"213 deck rebooting" 

Asynchronous configuration information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in configuration will generate a "511 configuration:" asynchronous message with the same parameters as the "211 configuration:" message.

Selecting active slot and video format

The "slot select" command instructs the deck to switch to a specified slot, or/and to select a specified output video format.

To switch to a specified slot:

slot select: slot id: {slot ID} 

To select the output video format:

slot select: video format: {video format} 

Either or all slot select parameters may be specified. Note that selecting video format will result in a rescan of the disk to reconstruct the timeline with all clips of the specified video format.

Clearing the current timeline

The "clips clear" command instructs the deck to empty the current timeline:

clips clear 

The server responds with

200 ok← 

Adding a clip to the current timeline

The "clips add:" command instructs the deck to add a clip to the current timeline:

clips add: name: {"clip name"} 

The server responds with

200 ok← 

or in case of error

1xx {error description} 

Configuring the watchdog

The “watchdog” command instructs the deck to monitor the connected client and terminate the connection if the client is inactive for at least a specified period of time.

To configure the watchdog:

watchdog: period: {period in seconds} 

To avoid disconnection, the client must send a command to the server at least every [period] seconds. Note that if the period is set to 0 or less than 0, connection monitoring will be disabled.

도움말

지원 받기

Blackmagic Design HyperDeck Studio 4K Pro - 지원 받기 - 1

natural_image Circular portrait photo of a smiling man in a dark shirt against a gray background (no text or symbols)
natural_image Front view of a black audio workstation with multiple video player channels and control knobs (no readable text or symbols)

HyperDeck Studio HD Pro и HyperDeck Studio 4K Pro

Blackmagic Design HyperDeck Studio 4K Pro - 지원 받기 - 2

natural_image Black audio player interface with playback controls and digital display (no readable text or symbols)

Blackmagic Design HyperDeck Studio 4K Pro - 지원 받기 - 3

natural_image Black audio recording device with control buttons and playback screen (no readable text or symbols)

HyperDeck Studio HD Mini HyperDeck Studio HD Plus

natural_image Illustration of hands interacting with a device panel showing playback controls and a video player interface (no readable text or symbols)
natural_image Diagram of a server rack with ports and an orange arrow indicating a specific component (no text or symbols present)
natural_image Front view of a rack-mounted server unit with ports and control panel (no visible text or labels)
natural_image Front view of a computer interface panel with buttons and ports (no text or symbols visible)
Command Reply No Remote Notes
0 - System Control
0x00 0x11 DeviceTypeRequestNTSC: 0xF0E0PAL: 0xF1E024P: 0xF2E0Enabled
1 - Slave Response
0x200x00StopAcknowledgeDisabled
0x200x01PlayAcknowledgeDisabled
0x200x02RecordAcknowledgeDisabled
0x200x04StandbyOffAcknowledgeDisabled
0x200x05StandbyOnAcknowledgeDisabled
0x200x0FEjectAcknowledgeDisabled
0x200x10FastFwdAcknowledgeDisabled
0x210x11JogFwd1AcknowledgeDisabled
0x220x11JogFwd2AcknowledgeDisabledTreated as N=1;Same as JogFwd1
0x210x12VarFwd1AcknowledgeDisabledUses ShuttleFwd1
0x220x12VarFwd2AcknowledgeDisabledTreated as N=1;Same as VarFwd1
0x210x13ShuttleFwd1AcknowledgeDisabled
0x220x13ShuttleFwd2AcknowledgeDisabledTreated as N=1;Same as ShuttleFwd1
0x200x20RewindAcknowledgeDisabled
0x210x21JogRev1AcknowledgeDisabled
0x220x21JogRev2AcknowledgeDisabledTreated as N=1;Same as JogRev1
0x210x22VarRev1AcknowledgeDisabledUses ShuttleRev1

Command Reply No Remote Notes

0x22 0x22 VarRev2 Acknowledge DisabledTreated as N=1;Same as VarRev1
0x210x23ShuttleRev1AcknowledgeDisabled
0x220x23ShuttleRev2AcknowledgeDisabledTreated as N=1;Same as ShuttleRev1
0x200x30PrerollAcknowledgeDisabled
0x24 0x31 CueData Acknowledge Disabled
0x200x34SyncPlayAcknowledgeDisabled
0x200x40PreviewAcknowledgeDisabledStatus bits are set
0x200x41ReviewAcknowledgeDisabledStatus bits are set
0x200x43OutpointPreviewAcknowledgeDisabled
0x220x5CDMCSetFwdAcknowledgeDisabled
0x220x5DDMCSetRevAcknowledgeDisabled
0x200x60FullEEOffAcknowledgeDisabled
0x200x61FullEEOnAcknowledgeDisabled
0x200x63SelectEEOnAcknowledgeDisabled
4 - Preset/Select Control
0x400x10InEntryAcknowledgeDisabled
0x400x11OutEntryAcknowledgeDisabled
0x440x14InDataPresetAcknowledgeDisabled
0x440x15OutDataPresetAcknowledgeDisabled
0x400x18InShift+AcknowledgeDisabled
0x400x19InShift-AcknowledgeDisabled
0x400x1AOutShift+AcknowledgeDisabled
0x400x1BOutShift-AcknowledgeDisabled
0x400x20InResetAcknowledgeDisabled
0x400x21OutResetAcknowledgeDisabled
0x400x22AlnResetAcknowledgeDisabled
0x400x23AOutResetAcknowledgeDisabled
0x440x31PrerollPresetAcknowledgeDisabled
0x400x40AutoModeOffAcknowledgeDisabledignored, Status bit remembered
0x400x41AutoModeOnAcknowledgeDisabledignored, Status bit remembered
0x410x37InputCheckAcknowledgeDisabled

Command Reply No Remote Notes
6 - Sense Request

0x61 0x0A TimeCodeGenSense — —
0x61 0x0C CurrentTimeSense — —
0x60 0x10 InDataSense InData Enabled
0x600x11OutDataSenseOutDataEnabled
0x600x12AlnDataSenseAlnDataEnabled
0x600x13AOutDataSenseAOutDataEnabled
0x610x20StatusSenseStatusDataEnabled
0x600x2BRemainTimeSenseRemainTimeDataEnabled
0x600x2ESpeedSenseSpeedDataEnabled
0x600x31PrerollTimeSensePreRollTimeDataEnabled
0x600x36TimerModeSenseTimerModeDataEnabled
0x600x3ERecordInhibitSenseRecordInhibitStatusEnabled

7 - Sense Reply

0x780x00Timer1DataCurrent Time and 00:00:00:00
0x780x04LTCUserBitsTimeDataCurrent Time and 00:00:00:00
0x780x06VITCUserBitsTimeDataCurrent Time and 00:00:00:00
0x740x06VITCTimeDataCurrent Time
0x740x07UserBitsVITCTimeData00:00:00:00
0x740x08GenTCDATACurrent Time
0x780x08GenTCUBDataCurrent Time and 00:00:00:00
0x740x09GenUBData00:00:00:00
0x74 0x10 InData— —
0x740x11OutData
0x740x12AlnData
0x740x13AOutData
0x740x14CorrectedLTCTimeDataCurrent Time
0x700x20StatusDataPlease see “Status Bits” sheet: Limited to 9 bytes of status, silently truncated
0x760x2BRemainTimeData
0x710x2ESpeedData
0x740x31PrerollTimeData
0x710x36TimerModeDataReturns 0 (TimeCode)
0x720x3ERecordInhibitStatus

Command Reply No Remote Notes
A - Advanced Media Protocol

0xA10x01AutoSkipAcknowledgeDisabled8-bit signed number of clips to skip from current clip
0xAX0x15ListNextIDIDListingEnabledwhen x = 0 single clip request when x = 1, # clips can be specified in the send data
0x200x29ClearPlaylistAcknowledgeDisabled
0x410x42SetPlaybackLoopAcknowledgeDisabledBit 0 loop mode enable, 0=false 1=trueBit 1 is single clip/timeline0=single clip1=timeline
0x410x44SetStopModeAcknowledgeDisabled0 = Off1 = Freeze on last frame2 = Freeze on next clip3 = Show black
0x4f0x16AppendPresetAcknowledgeDisabled2 Bytes for the length N of the clip nameN Bytes for each character of the clip name4 Byte in point timecode (format is FFSSMMHH)4 Byte out point timecode (format is FFSSMMHH)

Blackmagic Extensions

0x820x02BMDSeekToTimelinePositionAcknowledgeDisabled16-bit little endian fractional position [0..65535]
0x810x03BMDSeekRelativeClipAcknowledgeDisabledOne-byte signed integer, which is the number of clips to skip (negative for backwards).
Variables
Cassette OutSet if no SSD is present
LocalSet if Remote is disabled (local control)
StandbySet if a disk is available
DirectionClear if playback is forwarding, set if playback is reversing
StillSet if playback is paused, or if in input preview mode
Auto ModeSet if in Auto Mode
Select EE, Full EESet if in input preview mode
Lamp Still/Fwd/RevSet according to playback speed and direction
Near EOTSet if total space left on available SSDs is less than 3 minutes
EOTSet if total space left on available SSDs is less than 30 seconds
Others
Cue Complete (byte 2, bit 0)Always 1: Cue requests are always instantaneous
HyperDeck Serial RS-422 Protocol
ProtocolBased on Sony 9-pin protocol
InterfaceBaud rate 38.4 Kbps
1 start bit
8 data bits
1 stop bit
1 parity bit
Odd parity
natural_image Front view of a server rack with I2G SDI branding and multiple ports (no readable text or symbols beyond branding)

Command Command Description

help or ? Provides help text on all commands and parameters
commands return commands in XML format
device info return device information
disk list query clip list on active disk
disk list: slot id: {n} query clip list on disk in slot {n}
quit disconnect ethernet control
ping check device is responding
preview: enable: {true/false} switch to preview or output
play play from current timecode
play: speed: {-5000 to 5000} play at specific speed
play: loop: {true/false} play in loops or stop-at-end
play: single clip: {true/false} play current clip or all clips
playrange query playrange setting
playrange set: clip id: {n}set play range to play clip {n} only
playrange set: clip id: {n} count: {m}set play range to {m} clips starting from clip {n}
playrange set: in: {inT} out: {outT}set play range to play between:- timecode {inT} and timecode {outT}
playrange set: timeline in: {in} timeline out:{out}set play range in units of frames between:- timeline position {in} and position {out} clear/reset play range setting
playrange clearclear/reset play range setting
play on startupquery unit play on startup state
play on startup: enable: {true/false}enable or disable play on startup
play on startup: single clip: {true/false}play single clip or all clips on startup
play option query play options
play option: stop mode:{lastframe/nextframe/black}set output frame when playback stops
recordrecord from current input
record: name: {name}record named clip
record spillspill current recording to next slot

Command Command Description

record: spill: slot id: {n}spill current recording to specified slotuse current id to spill to same slot
stop stop playback or recording
clips count query number of clips on timeline
clips get query all timeline clips
clips get: clip id: {n} query a timeline clip info
clips get: clip id: {n} count: {m} query m clips starting from n
clips get: version: {1/2}query clip info using specified output version:version 1: is: name startT durationversion 2: id: startT duration inT outT name
clips add: name: {name} append a clip to timeline
clips add: clip id: {n} name: {name} insert clip before existing clip {n}
clips add: in: {inT} out: {outT} name: {name} append the {inT} to {outT} portion of clip
clips remove: clip id: {n}remove clip {n} from the timeline(invalidates clip ids following clip {n})
clips clear empty timeline clip list
transport info query current activity
slot info query active slot
slot info: slot id: {n} query slot {n}
slot select: slot id: {n} switch to specified slot
slot select: video format: {format}load clips of specified format
slot unblockunblock active slot
slot unblock: slot id: {n}unblock slot {n}
cache infoquery cache status
dynamic rangequery dynamic range settings
dynamic range: playback override:{off/Rec709/Rec2020_SDR/HLG/ST2084_300/ST2084_500/ST2084_800/ST2084_1000/ST2084_2000/ST2084_4000/ST2084set playback dynamic range override
dynamic range: record override:{off/Rec709/Rec2020_SDR/HLG/ST2084_300/ST2084_500/ST2084_800/ST2084_1000/ST2084_2000/ST2084_4000/ST2048}set record dynamic range override
notifyquery notification status
notify: remote: {true/false}set remote notifications
notify: transport: {true/false}set transport notifications
notify: slot: {true/false}set slot notifications
notify: configuration: {true/false}set configuration notifications
notify: dropped frames: {true/false}set dropped frames notifications
notify: display timecode: {true/false}set display timecode notifications

Command Command Description

notify: timeline position: {true/false} set playback timeline position notifications
notify: playrange: {true/false} set playrange notifications
notify: cache: {true/false} set cache notifications
notify: dynamic range: {true/false} set dynamic range settings notifications
notify: slate: {true/false} set digital slate notifications
goto: clip id: {start/end} goto first clip or last clip
goto: clip id: {n} goto clip id {n}
goto: clip id: +{n} go forward {n} clips
goto: clip id: -(n) go backward {n} clips
goto: clip: {n} goto frame position {n} within current clip
goto: clip: +{n} go forward {n} frames within current clip
goto: clip: -(n) go backward {n} frames within current clip
goto: clip: {start/end}goto start or end of clip
goto: timeline: {n}goto frame position {n} within timeline
goto: timeline: +{n}o forward {n} frames within timeline
goto: timeline: -(n}go backward {n} frames within timeline
goto: timeline: {start/end}goto start or end of timeline
goto: timecode: {timecode}goto specified timecode
goto: timecode: +{timecode}go forward {timecode} duration
goto: timecode: -(timecode}go backward {timecode} duration
goto: slot id: {n}goto slot id {n}
jog: timecode: {timecode}jog to timecode
jog: timecode: +{timecode}jog forward {timecode} duration
jog: timecode: -(timecode}jog backward {timecode} duration
shuttle: speed: {-5000 to 5000}shuttle with speed
remotequery unit remote control state
remote: enable: {true/false}enable or disable remote control
remote: override: {true/false}session override remote control
configurationquery configuration settings
configuration: video input: SDIswitch to SDI input
configuration: video input: HDMIswitch to HDMI input
configuration: video input: componentswitch to component input
configuration: audio input: embeddedcapture embedded audio
configuration: audio input: XLRcapture XLR audio
configuration: audio input: RCAcapture RCA audio
configuration: file format: {format}switch to specific file format
configuration: audio codec: PCMswitch to PCM audio
configuration: audio codec: AACswitch to AAC audio

Command Command Description

configuration: timecode input:{external/embedded/preset/clip}change the timecode input
configuration: timecode output:{clip/timeline/internal}change the timecode output
configuration: timecode preference:{default/dropframe/nondropframe}whether or not to use drop frame timecodes when not otherwise specified
configuration: timecode preset:{timecode}set the timecode preset
configuration: audio input channels: {n} set the number of audio channels recorded to {n}
configuration: record trigger:{none/recordbit/timecoderun}change the record trigger
configuration: record prefix: {name} set the record prefix name (supports UTF-8 name)
configuration: append timestamp:{true/false}append timestamp to recorded filename
configuration: xlr input id: {n} xlr type:{line/mic}configure xlr input typemultiple xlr inputs can be configured in a single command
configuration: genlock input resync:{true/false}enable or disable genlock input resync
uptime return time since last boot
format: prepare: {format} prepare a disk formatting operation to filesystem {format}
format: confirm: {token} perform a pre-prepared formatting operation using token
identify: enable: {true/false} identify the device
watchdog: period: {period in seconds} clientconnection timeout
reboot reboot device
slate clips slate clips information
slate project slate project information
slate project:←camera: {index}←set camera index e.g. A

Command Combinations

You can combine the parameters into a single command, for example:

play: speed: 200 loop: true single clip: true

Or for configuration:

configuration: video input: SDI audio input: XLR

Or to switch to the second disk, but only play NTSC clips:

slot select: slot id: 2 video format: NTSC

Using XML

While you can use the Terminal to talk to HyperDeck, if you are writing software, you can use XML to confirm the existence of a specific command based on the firmware of the HyperDeck you are communicating with. This helps your software user interface adjust to the capabilities of the specific HyperDeck model and software version.

Protocol Details

Connection

The HyperDeck Ethernet server listens on TCP port 9993.

Basic syntax

The HyperDeck protocol is a line oriented text protocol. Lines from the server will be separated by an ascii CR LF sequence. Messages from the client may be separated by LF or CR LF.

New lines are represented in this document as a "←" symbol.

Single line command syntax

Command parameters are usually optional. A command with no parameters is terminated with a new line:

{Command name} 

If parameters are specified, the command name is followed by a colon, then pairs of parameter names and values. Each parameter name is terminated with a colon character:

{Command name}: {Parameter}: {Value} {Parameter}: {Value} ... 

Multiline command syntax

The HyperDeck protocol also supports an equivalent multiline syntax where each parameter-value pair is entered on a new line. E.g.

{Command name}:←
{Pa ra m e t e r}: { Va lu e}←
{Pa ra m e t e r}: { Va lu e}← 

Response syntax

Simple responses from the server consist of a three digit response code and descriptive text terminated by a new line:

{Response code} {Response text} 

If a response carries parameters, the response text is terminated with a colon, and parameter name and value pairs follow on subsequent lines until a blank line is returned:

{Response code} {Response text}:←
{Pa ra m e t e r}: { Va lu e}←
{Pa ra m e t e r}: { Va lu e}←
...
← 

Successful response codes

A simple acknowledgement of a command is indicated with a response code of 200:

200 ok← 

Other successful responses carry parameters and are indicated with response codes in the range of 201 to 299.

Failure response codes

Failure responses to commands are indicated with response codes in the range of 100 to 199:

100 syntax error
101 unsupported parameter
102 invalid value
103 unsupported
104 disk full
105 no disk
106 disk error
107 timeline empty
108 internal error
109 out of range
110 no input
111 remote control disabled
112 clip not found
120 connection rejected
150 invalid state
151 invalid codec
160 invalid format
161 invalid token
162 format not prepared
163 parameterized single line command not supported 

Asynchronous response codes

The server may return asynchronous messages at any time. These responses are indicated with response codes in the range of 500 to 599:

5xx {Response Text}:←
{Pa ra m e t e r}: {Va lu e}←
{Pa ra m e t e r}: {Va lu e}← 

Connection response

On connection, an asynchronous message will be delivered:

500 connection info:←
protocol version: {Version}←
model: {Model Name}← 

Connection rejection

Only one client may connect to the server at a time. If other clients attempt to connect concurrently, they will receive an error and be disconnected:

120 connection rejected 

Timecode syntax

Timecodes are expressed as non-drop-frame timecode in the format:

HH:MM:SS:FF

Handling of deck "remote" state

The “remote” command may be used to enable or disable the remote control of the deck. Any attempt to change the deck state over ethernet while remote access is disabled will generate an error:

111 remote control disabled←

To enable or disable remote control:

remote: enable: {"true", "false"} 

The current remote control state may be overridden allowing remote access over ethernet irrespective of the current remote control state:

remote: override: {"true", "false"} 

The override state is only valid for the currently connected ethernet client and only while the connection remains open.

The “remote” command may be used to query the remote control state of the deck by specifying no parameters:

remote 

The deck will return the current remote control state:

210 remote info:←
enabled: {"true", "false"}←
override: {"true", "false"}←

Asynchronous remote control information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in remote state will generate a "510 remote info:" asynchronous message with the same parameters as the "210 remote info:" message.

Closing connection

The "quit" command instructs the server to cleanly shut down the connection:

quit 

Checking connection status

The "ping" command has no function other than to determine if the server is responding:

ping← 

Getting help

The "help" or "?" commands return human readable help text describing all available commands and parameters:

help 

Or:

?← 

The server will respond with a list of all supported commands:

201 help:
{Help Tex t}
{Help Tex t} 

Switching to preview mode

The "preview" command instructs the deck to switch between preview mode and output mode:

preview: enable: {"true", "false"} 

Playback will be stopped when the deck is switched to preview mode. Capturing will be stopped when the deck is switched to output mode.

Controlling device playback

The "play" command instructs the deck to start playing:

play← 

The play command accepts a number of parameters which may be used together in most combinations.

By default, the deck will play all remaining clips on the timeline then stop.

The "single clip" parameter may be used to override this behavior:

play: single clip: {"true", "false"} 

By default, the deck will play at normal (100%) speed. An alternate speed may be specified in percentage between -1600 and 1600:

play: speed: {% normal speed} 

By default, the deck will stop playing when it reaches to the end of the timeline. The "loop" parameter may be used to override this behavior:

play: loop: {"true", "false"} 

The “playrange” command instructs the deck to play all the clips. To override this behavior: and select a particular clip:

playrange set: clip id: {Clip ID} 

To only play a certain timecode range:

playrange set: in: {in timecode} out: {out timecode} 

To clear a set playrange and return to the default value:

playrange clear 

The “play on startup command” instructs the deck on what action to take on startup. By default, the deck will not play. Use the “enable” command to start playback after each power up.

play on startup: enable { "true", "false"} 

By default, the unit will play back all clips on startup. Use the "single clip" command to override.

play on startup: single clip: {"true", "false"} 

Stopping deck operation

The "stop" command instructs the deck to stop the current playback or capture:

stop← 

Changing timeline position

The "goto" command instructs the deck to switch to playback mode and change its position within the timeline.

To go to the start of a specific clip:

goto: clip id: {Clip ID} 

To move forward/back {count} clips from the current clip on the current timeline:

goto: clip id: +/- {count} 

Note that if the resultant clip id goes beyond the first or last clip on timeline, it will be clamp at the first or last clip.

To go to the start or end of the current clip:

goto: clip: {"start", "end"} 

To go to the start of the first clip or the end of the last clip:

goto: timeline: { "start", "end"} 

To go to a specified timecode:

goto: timecode: {timecode} 

To move forward or back a specified duration in timecode:

goto: timecode: {“+”, “-”} {duration in timecode} 

To specify between slot 1 and slot 2:

goto: slot id: {Slot ID} 

Note that only one parameter/value pair is allowed for each goto command.

Enumerating supported commands and parameters

The "commands" command returns the supported commands:

commands 

The command list is returned in a computer readable XML format:

212 commands:
<commands>
<command name="..."><parameter name="..."/>...</command>
<command name="..."><parameter name="..."/>...</command>
...
</commands> 

More XML tokens and parameters may be added in later releases.

Controlling asynchronous notifications

The "notify" command may be used to enable or disable asynchronous notifications from the server.

To enable or disable transport notifications:

notify: transport: {"true", "false"} 

To enable or disable slot notifications:

notify: slot: {"true", "false"} 

To enable or disable remote notifications:

notify: remote: {"true", "false"} 

To enable or disable configuration notifications:

notify: configuration: {"true", "false"} 

Multiple parameters may be specified. If no parameters are specified, the server returns the current state of all notifications:

209 notify:←
transport: { "true", "false" }←
slot: { "true", "false" }←
remote: { "true", "false" }←
configuration: { "true", "false" }←
dropped frames: { "true", "false" }←
display timecode: { "true", "false" }←
timeline position: { "true", "false" }←
playrange: { "true", "false" }←
cache: { "true", "false" }←
dynamic range: { "true", "false" }←
slate: { "true", "false" }← 

Retrieving device information

The "device info" command returns information about the connected deck device:

device info 

The server will respond with:

204 device info:←
protocol version: {Version}←
model: {Model Name}←
unique id: {unique alphanumeric identifier}←
slot count: {number of storage slots}←
software version: {software version}← 

Retrieving slot information

The "slot info" command returns information about a slot. Without parameters, the command returns information for the currently selected slot:

slot info 

If a slot id is specified, that slot will be queried:

slot info: slot id: {Slot ID} 

The server will respond with slot specific information:

202 slot info:←
slot id: {Slot ID}←
    status: {"empty", "mounting", "error", "mounted"}←
volume name: {Volume name}←
recording time: {recording time available in seconds}←
video format: {disk's default video format}←
blocked: {"true", "false"}← 

Asynchronous slot information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in slot state will generate a "502 slot info:" asynchronous message with the same parameters as the "202 slot info:" message.

Retrieving clip information

The "disk list" command returns the information for each playable clip on a given disk. Without parameters, the command returns information for the current active disk:

disk list 

If a slot id is specified, the disk in that slot will be queried:

disk list: slot id: {Slot ID} 

The server responds with the list of all playable clips on the disk in the format of: Index, name, formats, and duration in timecode:

206 disk list:←
slot id: {Slot ID}←
{clip index}: {name} {file format} {video format} {Duration timecode}←
{clip index}: {name} {file format} {video format} {Duration timecode}←
...
← 

Note that the clip index starts from 1.

Retrieving clip count

The "clips count" command returns the number of clips on the current timeline:

clips count ← 

The server responds with the number of clips:

214 clips count: ←
clip count: {Count}← 

Retrieving timeline information

The "clips get" command returns information for each available clip on the current timeline. Without parameters, the command returns information for all clips on timeline:

clips get← 

The server responds with a list of clip IDs, names and timecodes:

205 clips info:←
clip count: {Count}←
{Clip ID}: {Name} {Start timecode} {Duration timecode}←
{Clip ID}: {Name} {Start timecode} {Duration timecode}←
... 

Retrieving transport Information

The "transport info" command returns the state of the transport:

transport info ← 

The server responds with transport specific information:

208 transport info:
status: { "preview", "stopped", "play", "forward", "rewind", "jog", "shuttle","record"}←
speed: {Play speed between -5000 and 5000 %}←
slot id: {Slot ID or "none"}←
clip id: {Clip ID or "none"}←
single clip: { "true", "false"}←
display timecode: {timecode}←
timecode: {timecode}←
video format: {Video format}←
loop: { "true", "false"}←
timeline: {n}←
input video format: {Video format"}←
dynamic range: { "off", "Rec709", "Rec2020_SDR", "HLG", "ST2084_300", "ST2084_500", "ST2084_800", "ST2084_1000", "ST2084_2000", "ST2084_4000", "ST2048" or "none"}← 

The "timecode" value is the timecode within the current timeline for playback or the clip for record. The "display timecode" is the timecode displayed on the front of the deck. The two timecodes will differ in some deck modes.

Asynchronous transport information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in transport state will generate a "508 transport info:" asynchronous message with the same parameters as the "208 transport info:" message.

Video Formats

The following video formats are currently supported on HyperDeck Studio:

NTSC, PAL, NTSCp, PALp

720p50, 720p5994, 720p60

1080p23976, 1080p24, 1080p25, 1080p2997, 1080p30

1080i50, 1080i5994, 1080i60

HyperDeck Studio Pro and Plus models support these 4k formats:

4Kp23976, 4Kp24, 4Kp25, 4Kp2997, 4Kp30

HyperDeck Studio 4K Pro adds support for the following 4k formats:

4Kp50, 4Kp5994, 4Kp60

Video format support may vary between models and software releases.

File Formats

All HyperDeck models currently support the following file formats:

H.264High_SDI

H.264High

H.264Medium

H.264Low

QuickTimeProResHQ

QuickTimeProRes

QuickTimeProResLT

QuickTimeProResProxy

QuickTimeDNxHD220x

DNxHD220x

QuickTimeDNxHD145

DNxHD145

QuickTimeDNxHD45

DNxHD45

HyperDeck Studio 4K Pro also supports the following file formats:

H.265High_SDI

H.265High

H.265Medium

H.265Low

QuickTimeDNxHR_HQX

DNxHR_HQX 4Kp60

QuickTimeDNxHR_SQ

DNxHR_SQ

QuickTimeDNxHR_LB

DNxHR_LB

Supported file formats may vary between models and software releases.

Querying and updating configuration information

The "configuration" command may be used to query the current configuration of the deck:

configuration 

The server returns the configuration of the deck:

211 configuration:←
audio input: { "embedded", "XLR", "RCA" }←
audio mapping: {n}←
video input: { "SDI", "HDMI", "component", "composite" }←
file format: {format}←
audio codec: { "PCM", "AAC" }←
timecode input: { "external", "embedded", "preset", "clip" }←
timecode output: { "clip", "timeline" }←
timecode preference: { "default", "dropframe", "nondropframe" }←
timecode preset: {timecode}←
audio input channels: {n}←
record trigger: { "none", "recordbit", "timecoderun" }←
record prefix: {name}←
append timestamp: { "true", "false" }← 

One or more configuration parameters may be specified to change the configuration of the deck.

To change the current video input:

configuration: video input: {"SDI", "HDMI", "component"} 

Valid video inputs may vary between models. To configure the current audio input:

configuration: audio input: {"embedded", "XLR", "RCA"} 

Valid audio inputs may vary between models.

To configure the current file format:

configuration: file format: {File format} 

Note that changes to the file format may require the deck to reset, which will cause the client connection to be closed. In such case, response code 213 will be returned (instead of 200) before the client connection is closed:

"213 deck rebooting" 

Asynchronous configuration information change notification is disabled by default and may be configured with the "notify" command. When enabled, changes in configuration will generate a "511 configuration:" asynchronous message with the same parameters as the "211 configuration:" message.

Selecting active slot and video format

The "slot select" command instructs the deck to switch to a specified slot, or/and to select a specified output video format.

To switch to a specified slot:

slot select: slot id: {slot ID} 

To select the output video format:

slot select: video format: {video format} 

Either or all slot select parameters may be specified. Note that selecting video format will result in a rescan of the disk to reconstruct the timeline with all clips of the specified video format.

Clearing the current timeline

The "clips clear" command instructs the deck to empty the current timeline:

clips clear 

The server responds with

200 ok← 

Adding a clip to the current timeline

The "clips add:" command instructs the deck to add a clip to the current timeline:

clips add: name: {"clip name"} 

The server responds with

200 ok← 

or in case of error

1xx {error description} 

Configuring the watchdog

The “watchdog” command instructs the deck to monitor the connected client and terminate the connection if the client is inactive for at least a specified period of time.

To configure the watchdog:

watchdog: period: {period in seconds} 

To avoid disconnection, the client must send a command to the server at least every {period} seconds. Note that if the period is set to 0 or less than 0, connection monitoring will be disabled.

Помощь

Как получить помощь

Blackmagic Design HyperDeck Studio 4K Pro - Как получить помощь - 1

natural_image Circular portrait photo of a smiling man in a dark shirt against a gray background (no text or symbols)

Gentile utente,

CEO Blackmagic Design

Indice

Registratori su disco HyperDeck 573

natural_image Front view of a black audio workstation with multiple video player channels and control knobs (no readable text or symbols)

HyperDeck Studio HD Pro e HyperDeck Studio 4K Pro

Blackmagic Design HyperDeck Studio 4K Pro - Indice - 1

natural_image Black electronic audio recording device with control panel and digital display (no readable text or symbols)

Blackmagic Design HyperDeck Studio 4K Pro - Indice - 2

natural_image Black audio recording device with control buttons and a digital display showing time, location, and terrain (no readable text or symbols)

HyperDeck Studio HD Mini HyperDeck Studio HD Plus

natural_image Illustration of a computer interface with buttons and a video player (no text or symbols on the device itself)
natural_image Diagram of a server rack with ports and an orange arrow indicating a specific component (no text or symbols present)

Setup Ora 15:12 Software 8.0 Schermo Light Appearance Camera A

Camera

Remoto

Table of contents Click a title to access it
Manual assistant
Powered by Anthropic
Waiting for your message
Product information

Brand : Blackmagic Design

Model : HyperDeck Studio 4K Pro

Category : VCR