Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

bradl

macrumors 603
Jun 16, 2008
5,952
17,447
I've mentioned a few times that I'm trying to get this working on M1 Macs (I have an M1 Pro MacBook Pro 14" as well as an M1 Mac mini). And yeah I thought as much that the VCam-plugin.plugin file isn't compiled for my architecture...

Ahh.. I missed the part where you said that you were trying to get this to work on M1.. If you can quickly get a recompile on that plugin, then you're good to go.

However, if you're doing this on Silicon, then it does stump me as to why Rosetta 2 didn't pick this up..

BL.
 

rajs

macrumors regular
Jan 21, 2004
111
56
Could you try one thing - issue the command as follows instead: (going to try using ffmpeg instead of ffmpeg-dl. As decklink is now included in many ffmpeg builds and compile scripts I believe.


ffmpeg -f avfoundation -list_devices true -i ""

Thx (either way I’ll be back in 8hrs)
 

ShiggyMiyamoto

macrumors 6502a
Mar 29, 2004
620
31
Just outside Boston, MA.
Could you try one thing - issue the command as follows instead: (going to try using ffmpeg instead of ffmpeg-dl. As decklink is now included in many ffmpeg builds and compile scripts I believe.


ffmpeg -f avfoundation -list_devices true -i ""

Thx (either way I’ll be back in 8hrs)

Same exact results:

shiggitay@VocaloidHaven-Mini ~ % ffmpeg -f avfoundation -list_devices true -i ""
ffmpeg version 5.0 Copyright (c) 2000-2022 the FFmpeg developers
built with Apple clang version 13.0.0 (clang-1300.0.29.30)
configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/5.0 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-neon
libavutil 57. 17.100 / 57. 17.100
libavcodec 59. 18.100 / 59. 18.100
libavformat 59. 16.100 / 59. 16.100
libavdevice 59. 4.100 / 59. 4.100
libavfilter 8. 24.100 / 8. 24.100
libswscale 6. 4.100 / 6. 4.100
libswresample 4. 3.100 / 4. 3.100
libpostproc 56. 3.100 / 56. 3.100
2022-03-18 03:15:09.311 ffmpeg[97211:738529] Error loading /Library/CoreMediaIO/Plug-Ins/DAL/vcam-plugin.plugin/Contents/MacOS/vcam-plugin: dlopen(/Library/CoreMediaIO/Plug-Ins/DAL/vcam-plugin.plugin/Contents/MacOS/vcam-plugin, 0x0109): tried: '/Library/CoreMediaIO/Plug-Ins/DAL/vcam-plugin.plugin/Contents/MacOS/vcam-plugin' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e'))
[AVFoundation indev @ 0x132e057e0] AVFoundation video devices:
[AVFoundation indev @ 0x132e057e0] [0] HD Pro Webcam C920
[AVFoundation indev @ 0x132e057e0] [1] OBS Virtual Camera
[AVFoundation indev @ 0x132e057e0] [2] FHD Capture
[AVFoundation indev @ 0x132e057e0] [3] Capture screen 0
[AVFoundation indev @ 0x132e057e0] [4] Capture screen 1
[AVFoundation indev @ 0x132e057e0] AVFoundation audio devices:
[AVFoundation indev @ 0x132e057e0] [0] Brave
[AVFoundation indev @ 0x132e057e0] [1] FHD Capture
[AVFoundation indev @ 0x132e057e0] [2] BlackHole 16ch
[AVFoundation indev @ 0x132e057e0] [3] HD Pro Webcam C920
: Input/output error
 

rajs

macrumors regular
Jan 21, 2004
111
56
@ShiggyMiyamoto -

I took out my Sony DCR-TRV103 Camcorder and did indeed hook it up to the MacBook Pro 14"
I can't get ffmpeg 5 or even 4.4.1 to work on MacOS 12.3 in terms of them showing recognizing or displaying the DVCam when the following command is issued:
ffmpeg -f avfoundation -list_devices true -i ""

On macOS Big Sur using ffmpeg 4.x this all worked on a MacMini M1 with no issues at all.

Interesting thing is when I look at MacOS System Info (Apple Icon / About this Mac / System Report / Hardware / Firewire) - I see the Camcorder device connected to Firewire.

So it's either some issue where ffmpeg on MacOS 12.x isn't seeing the firewire (Thunderbolt devices) - maybe security related ???

I've got to look into this further when I get some time -- because I do want to make sure this works again for me -- should I find more old tapes that need to be transferred. Will post in here when I find the "fix" / solution to this.

EDITS Made to fix some grammar.
 

Attachments

  • ScreenShot 2022-03-18 at 2.19.40 PM.jpg
    ScreenShot 2022-03-18 at 2.19.40 PM.jpg
    143.1 KB · Views: 123
  • ScreenShot 2022-03-18 at 10.53.49 AM.jpg
    ScreenShot 2022-03-18 at 10.53.49 AM.jpg
    212.5 KB · Views: 93
Last edited:
  • Like
Reactions: ShiggyMiyamoto

ShiggyMiyamoto

macrumors 6502a
Mar 29, 2004
620
31
Just outside Boston, MA.
@ShiggyMiyamoto -

I took out my Sony DCR-TRV103 Camcorder and did indeed hook it up to the MacBook Pro 14"
I can't get ffmpeg 5 or even 4.4.1 to work on MacOS 12.3.

At least ffmpeg (ffmpeg-dl) don't recognize or display the DV Cam when the following command is issued:
ffmpeg -f avfoundation -list_devices true -i ""

On macOS Big Sur using ffmpeg 4.x this all worked for sure on a MacMini M1.

The interesting thing is if I at the MacOS System Info (Apple Icon / About this Mac / System Report / Hardware / Firewire) - I see the Camcorder device connected to Firewire.

So it's either some issue where ffmpeg on MacOS 12.x isn't seeing the firewire (Thunderbolt devices) - maybe security related ???

I've got to look into this further when I get some time -- because I do want to make sure this works again for me -- should I find more old tapes that need to be transferred. Will post in here when I find the "fix" / solution to this.

Hmm odd... Thanks for your help. I'll be watching this thread.
 

ShiggyMiyamoto

macrumors 6502a
Mar 29, 2004
620
31
Just outside Boston, MA.
Could you confirm that you too can see via System Info the Canon DV Cam hooked up to your Firewire ?
I'm setting it all up on my old (my dad's current) 2015 15" MacBook Pro to try and rule out whether it's an architecture issue... He's running on 12.0.1. I'll report back.

EDIT: So I set up Homebrew and the utilities needed for this to work on the 15" MBP I aforementioned but I'm getting the same I/O error as I get here on my M1 Mac mini... Very strange.

EDIT 2: It might possibly be my FireWire 800 to DV cable... I'll order the Bizlander one to see if that fixes things.

EDIT 3: PROGRESS! Apple System Profiler sees my ZR70 MC camcorder, but iMovie/FCPX/QT Player don't see the camera as a capture-able device. @rajs I await your solution to this should you find/devise one. I'm closer!

EDIT 4: MORE PROGRESS! I just connected my ZR70 MC to the 2015 15" MBP running 12.0.1 and it works! I can see and control the camera super easily.... So, it seems to be a 12.3 issue and/or that vcam-plugin being the wrong binary type and Rosetta not knowing WTF to do with it.....

EDIT 5: Not so much progress as an experiment, but I tried taking my native OBS ARM nightly build's virtual cam plugin and literally copying and renaming it to "vcam-plugin.plugin", but that did nothing besides silence it from complaining about mismatching arch's.

EDIT 6: I'm in process of partitioning and installing via Dual Boot macOS Big Sur on my M1 Mac mini... It's not something I really wanted to do, but it'll work I hope, since apparently it worked for you @rajs on the same machine on macOS 11.x. I gave Big Sur a 60 GB partition which is overkill, but all I need it for is the OS and Homebrew with the ffmpeg stuff.

EDIT 7: I've successfully installed macOS Big Sur to the aforementioned 60 GB partition, and iMovie sees the camera just fine! I'll test with the ffmpeg stuff next, but I'm on the right track!

EDIT 8: Final edit because I got it working quite well using the ffmpeg-dl command. Thank you @rajs. All is working super well under Big Sur on the separate partition I installed it to.
 
Last edited:
  • Like
Reactions: rajs

rajs

macrumors regular
Jan 21, 2004
111
56
EDIT 8: Final edit because I got it working quite well using the ffmpeg-dl command. Thank you @rajs. All is working super well under Big Sur on the separate partition I installed it to.
Awesome to read that you were able to get it to work on Big Sur (similiar to what I had set up). I haven't had a chance to come back and look into it further as to why the Camcorder isn't been seen on MacOS 12.3. Will update back into this thread if I find out what is causing the issue in 12.3.
 

jermudgeon

macrumors newbie
Apr 16, 2022
1
0
Anchorage, AK
I'm having similar, but not identical, problems with a DCR-TRV520 and Mac OS 12.3.x. I have an M1 Max MBP 14", as well as an Intel iMac. I'm using Apple adapters.

Initially, I could see the FW device in System Info on both Macs, but could only capture on the iMac. After capturing about 10 tapes, it stopped showing up as a device in iMovie.

I switched over to a Windows 10 system to confirm that the Apple adapters and cabling were all still working. I successfully captured some more tapes.

I've tried both

ffmpeg-dl -v trace -f avfoundation -list_devices true -i ""

ffmpeg version 5.0.1 Copyright (c) 2000-2022 the FFmpeg developers built with Apple clang version 13.1.6 (clang-1316.0.21.2.3) configuration: --prefix=/usr/local/Cellar/ffmpegdecklink/5.0.1 --disable-shared --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-libfreetype --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-libfontconfig --disable-libjack --disable-indev=jack --enable-nonfree --enable-decklink --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/include libavutil 57. 17.100 / 57. 17.100 libavcodec 59. 18.100 / 59. 18.100 libavformat 59. 16.100 / 59. 16.100 libavdevice 59. 4.100 / 59. 4.100 libavfilter 8. 24.100 / 8. 24.100 libswscale 6. 4.100 / 6. 4.100 libswresample 4. 3.100 / 4. 3.100 libpostproc 56. 3.100 / 56. 3.100 Splitting the commandline. Reading option '-v' ... matched as option 'v' (set logging level) with argument 'trace'. Reading option '-f' ... matched as option 'f' (force format) with argument 'avfoundation'. Reading option '-list_devices' ... matched as AVOption 'list_devices' with argument 'true'. Reading option '-i' ... matched as input url with argument ''. Finished splitting the commandline. Parsing a group of options: global . Applying option v (set logging level) with argument trace. Successfully parsed a group of options. Parsing a group of options: input url . Applying option f (force format) with argument avfoundation. Successfully parsed a group of options. Opening an input file: . [AVFoundation indev @ 0x7fe2d6004540] AVFoundation video devices: [AVFoundation indev @ 0x7fe2d6004540] [0] FaceTime HD Camera (Built-in) [AVFoundation indev @ 0x7fe2d6004540] [1] Capture screen 0 [AVFoundation indev @ 0x7fe2d6004540] AVFoundation audio devices: [AVFoundation indev @ 0x7fe2d6004540] [0] Built-in Microphone : Input/output error

and

ffmpeg (
ffmpeg version 5.0.1 Copyright (c) 2000-2022 the FFmpeg developers

built with Apple clang version 13.1.6 (clang-1316.0.21.2.3)

configuration: --prefix=/usr/local/Cellar/ffmpegdecklink/5.0.1 --disable-shared --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-libfreetype --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-libfontconfig --disable-libjack --disable-indev=jack --enable-nonfree --enable-decklink --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/include)

but get Input/output error with both, and NO notice about a plugin that doesn't work.

I'm mystified! Yes, I've tried rebooting everything, pretty much everything short of a clean install. I found it interesting that it never worked at all on M1.
 

rajs

macrumors regular
Jan 21, 2004
111
56
UPDATE: It's working again -- I just decided to test today -- on the following configuration:
Latest version that I'll keep updated is at - https://forums.macrumors.com/thread...t-supported-ieee-1394-firewire-ilink.2321691/

Current as of June 14 2022 below.
Hardware:
MacBook Pro (14-inch 2021)
Chip: Apple M1 Pro
OS: macOS Monterey - Version 12.4

Camcorder - Sony DCR-TRV103 NTSC (Digital 8 / Hi8 / Video8 tapes) - has a firewire (thunderbolt) ieee 1394 port.

Wiring:
Old Firewire 800 cable I had lying around or something like ( Bizlander Firewire High Speed Premium DV to Firewire Cable 800 1394B 800-400 IEEE 9 Pin Male to 4 Pin Male Cable 6FT for Mac Pro, MacBook Pro, Mac Mini, iMac PC,Digital Cameras, SLR )
|
V
Apple Thunderbolt to FireWire Adapter
|
V
Apple Thunderbolt 3 (USB-C) to Thunderbolt 2 Adapter
|
V
USB-C / Thunderbolt port on a 2021 MacBook Pro 14 inch

Software:
Install Homebrew: Directions at: https://brew.sh
Install ffmpeg (at least version 5.0.1_2): via terminal app issue the following command:
brew install ffmpeg

Check to see if it works:
Wire up the camcorder as per above to the Mac and make sure the camcorder is ON and the switch on it is set to PLAY / VTR mode (not record mode).

Issue the following command from the Terminal app on your Mac -
ffmpeg -f avfoundation -list_devices true -i ""

You should see some output from the command above with the name of your camcorder model (in my case - DCR-TRV103). Note down (copy) the EXACT spelling that is shown in above command's output. If your Camcorder is listed that means your Mac and Camcorder are communicating just fine via your firewire connection.

Proof it works (as of Jun 14 2022):

Proof of Working ffmpeg DV Tape capture from Camcorder under MacOs 12 on M1 Chip.jpg


Capture Tape to Mac:
Capture a full video tape onto your Mac as a raw video Digital Video (.DV) file that you can later edit / compress / convert / etc..

You are ready to now capture the entire tape over to a .DV file onto your MacBook. It'll be BIG (~ 20 GB / hr of taped video) but for now you want to capture as losslessly as possible so you can do edits, color correction, etc.. with the best quality material possible - which is in this case the .DV file. Post capture, at your leisure you'll be able to do edits, color correction, frame rate changes, resolution upscaling, stabilization, etc. etc.. and transcode the .DV file over to another format (MP4, etc..) that you prefer etc.

Make sure the camcorder is ON and the switch is set to PLAY / VTR mode (not record mode).
Insert your first tape, rewind it fully and then issue the command below in the terminal app and hit PLAY on the Camcorder immediately.

NOTE: Please replace "DCR-TRV103" with the actual name you saw and copied down of your camcorder in Check to See if It Works step above. Also you can change name of output DV file to what ever you want in command below.

Command to be issued from Terminal on your Mac:
ffmpeg -f avfoundation -capture_raw_data true -I "DCR-TRV103" -c copy -map 0 -f rawvideo tape_1_capture_video.dv

In the above command:
  • -i "DCR-TVR103" selects the input device
  • -c copy tells the ffmpeg program to NOT re-encode the file into some lossy format but instead keep it full quality
  • -map 0 parameter tells ffmpeg to save all streams of data (video and audio) as is coming off the camcorder
  • -f rawvideo tells ffmpeg program that the video stream is raw data
  • tape_1_capture_video.dv is the file name it will be saved as (feel free to use any name with .dv as the file name extension ending)
This will take a long time. As long as the tape is in minutes. So a 60 min tape will take 60 mins, etc.. as it is playing the tape in real time.

Post Capture:
Now you've captured one or more of your tapes over to your Mac you can decide how you want to edit / correct / split into segments or join various portions, stabilize, color correct, etc. etc. and what format you want to save your corrected video clip(s) as.

You can use Final Cut or iMovie or Davinci Resolve, or a multitude of other applications.

Or you can even look at just using:
MPV - https://mpv.io
ShotCut - https://www.shotcut.org
Lossless Cut - https://mifi.github.io/lossless-cut/
Shutter Encoder - https://www.shutterencoder.com/en/

Personally I found the following useful for my quick workflow:
1. Do above to capture all tapes into DV format on Mac

2. View a tape's DV file and note down in a spreadsheet the start and end time for every segment I want to split out into a new file. Also note down any notes on the people in the video segment, a small description and if I want to do something regarding how bright or under / over saturated the video is.

NOTE: You can also adjust many other parameters besides those and can actually even pass Adobe Photoshop Curves values or a photoshop ACV file. For example extract a video frame from a video segment as a PNG image file to use in Photoshop where you can make adjustments via curves. For example, to extract an image (PNG) that you will adjust in Photoshop later from a video at the 16 second point into the video file issue the following command:

ffmpeg -ss 0:00:16 -I tape_1_video.dv -frames:v 1 output.png

Then:
  • Open in Photoshop the PNG file from above - output.png and adjust the CURVES and save the curves adjustment to a curves preference file - that ends in ACV
  • Pass the acv curves file to adjust entire video segment to that
  • curves= setting for ffmpeg to use in the -filter: parameter. i.e. curves=psfile=tape_1_video_at_16_second_mark_curves_file_from_Photoshop.acv
  • Google above for more help if you want to use it in step 4 below.
Another way to do curves adjustments is directly by specifying the adjustments individually in ffmpeg filter command like above but not referencing a file but instead the individual curve adjustments. Shotcut App or Shutter Encoder App above may make it easier to view and see the various curve adjustments values for ffmpeg.

3. I used MPV Player to view the original DV file with a script to fire it up to jump directly to the start of each video segment based on values I recorded in the spreadsheet with commands mapped into the keyboard so I could increase/decrease the GAMMA (brightness adjustments) and the Saturation settings to see how it would look. Based on adjustments made I would note down in my spreadsheet the gamma and saturation settings I settled on for that segment.

4. Then I ran a script that issued ffmpeg command to create corrected / edited / etc.. H264 MP4 encoded video segment files from the original DV file(s). The ffmpeg command for each segment was something similar to below:

ffmpeg -loglevel error -stats \
-ss 0:49:24 -to 0:51:14 \
-i tape_1_capture_video.dv \
-map 0:0 \
-filter:v eq=saturation=1.1:gamma=1.6,bwdif,scale=w=-2:h=720 \
-c:v h264_videotoolbox -b:v 5000k \
-color_primaries:v bt709 -color_trc:v bt709 -colorspace:v bt709 \
-aspect 4:3 \
-map 0:1 -c:a:0 aac_at -aac_at_mode:a:0 cvbr -ar:a:0 48000 \
-sn \
-movflags disable_chpl \
-movflags +faststart \
-metadata title='Title of the Video Segment' \
-metadata description='A verbose desription of the video segment - i.e. the people and what was happening etc.' \
REENCODED_CORRECTED_SEGMENT_OUTPUTFILENAME.mp4

In the above command:
-ss gives the start to end time of the video segment I want to extract and re-encode into H264
-i the input file name of the original DV file
-map 0:0 - video stream from DV file
- filter line - bumping saturation to 1.1 and brightening via changing the gamma to 1.6. bwdif is to de-interlace the video and extrapolate upscale to 720p res
-c:v is directing ffmpeg to use the (not that great but it is faster while using more space) video toolbox h264 encoder and the hardware capabilities of the M1 chipsets instructions to speed up the process
-b:v 5000 is for a higher bit rate for improving the quality of the lossy encode (prob too high but I am fine with it). Make it a smaller number and you'll get a smaller file and might not be as good quality -- you can experiment.
-aspect command to ensure it maintains original ratio (might not be needed but I kept it in)
-map 0:1 and associated parameters are to re-encode the DV files audio data stream to AAC at 48K
REENCODED_CORRECTED_SEGMENT_OUTPUTFILENAME.mp4 - The filename to save the re-encode to
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.