HyperDeck multi-mono audio to surround

I recently made a recording with a Blackmagic Design HyperDeck 12G from an HDMI source which had 5.1 audio. Unfortunately, the HyperDeck recorded 16 independent mono channels, which meant that everything was on the center channel when I imported it into Final Cut Pro X. In addition, the C and LFE channels were swapped in the same manner that Media Express swaps them.

To fix the issue, I was able to use a similar command to what I used for fixing recordings from Media Express (see my post on that issue). The one change was using “-map 0:1” as the HyperDeck stores the video as Stream #0. This command has the nice side-effect of stripping the extra unused audio channels from the file, which also reduces the file size.

ffmpeg -i input.mov \
-c:v copy \
-filter_complex \
"pan=6c|c0=c0|c1=c1|c2=c3|c3=c2|c4=c4|c5=c5[out1]" \
-map 0:1 -map [out1] -c:a pcm_s24le \
output.mov

I also have some 7.1 sources, and for them I’ll be using a slightly modified version of the command.

ffmpeg -i input.mov \
-c:v copy \
-filter_complex \
"pan=8c|c0=c0|c1=c1|c2=c3|c3=c2|c4=c4|c5=c5|c6=c6|c7=c7[out1]" \
-map 0:0 -map [out1] -c:a pcm_s24le \
output.mov

Media Express C/LFE channel swap

Media Express by Blackmagic Design incorrectly swaps the C (Center) and LFE (low-frequency effects) channels on 5.1 surround material. This can be fixed using the ffmpeg command.

TL;DR

I recently purchased a Blackmagic Design UltraStudio 4K to do some recording from HDMI sources. Recordings must be made using the provided Media Express software, which is fine, except for the fact that the C and LFE audio channels are swapped in 5.1 material. As you can see in this screenshot, the spoken word coming through the center channel is on channel #4 instead of channel #3.

For reference

  • The standard 5.1 channel order for Wave files is: L, R, C, LFE, Ls, Rs
  • The non-standard Media Express 5.1 channel order is: L, R, LFE, C, Ls, LR

After significant troubleshooting, I found a solution using ffmpeg from the command-line to swap the C and LFE channels. The remaining steps require a working ffmpeg installation. I haven’t found a standalone version for macOS, but it is available via Homebrew.

HOWTO: Swap C and LFE channels on .mov file written by Media Express. Replace the input.mov and output.mov filenames as appropriate. The actual magic happens with the c2=3|c3=2 part of the –filter_complex flag.

ffmpeg -i input.mov \
-filter_complex "pan=6c|c0=c0|c1=c1|c2=c3|c3=c2|c4=c4|c5=c5[out1]" \
-map 0:0 -c:v copy \
-map [out1] -c:a pcm_s24le \
output.mov

If by chance you’ve already worked on a broken file with Final Cut Pro and want to fix the channel ordering on the exported file, the command is only slightly different—change the -map 0:0 to -map 0:1. FCP writes video as stream #0 and audio as stream #1, whereas ME writes audio as stream #0.

ffmpeg -i input.mov \
-filter_complex "pan=6c|c0=c0|c1=c1|c2=c3|c3=c2|c4=c4|c5=c5[out1]" \
-map 0:1 -c:v copy \
-map [out1] -c:a pcm_s24le \
output.mov

References

  • [Blackmagic Forum] Audio: LFE and Center channels being switched. I made a post on Jan 19, 2019 with similar information to that above.