UPDATED: Feb 19 2023: GUI based options and misc edits for clarity.
A method for converting old videos on tapes (Video8, Digital8, Hi8, VHS, etc..) if you have a old device (camcorder, VCP, VCR, Playback Deck, etc..) that has an IEEE 1394 / Firewire / iLink connector built into it such as my Sony DCR-TRV103 Camcorder does. Many Sony Camcorders of that era have an "iLink" interface (Firewire). Also many S-VHS decks also have a Firewire interface.
Successfully transferred from a Sony camcorder ( DCR-TRV103 ) Video8 tapes over Firewire (Thunderbolt / USB-C) to digital DV files the full RAW tape.
Have done this using FFmpeg (command line) on various Mac's [Intel and Apple Silicon] over multiple macOS versions (10.14, 10.15, 11.x, 12.x, 13.x)
- MacBook Pro 14 2021 model (Apple Silicon - M1 Pro)
- Mac mini (Apple Silicon - M1)
- iMac 27 (Intel - i7, i5)
Have done this using OBS App (GUI) on a MacBook Pro 14 2021 model (Apple Silicon) with macOS 13.2.1
Firewire Connection vs RCA or S-Video Cable connection:
Firewire enables the MAXIMUM quality transfer of the video / audio as compared to an analog S-Video or RCA connector connections.
Using Firewire you can do the initial (or final) transcode & capture which takes the the max quality video/audio from the tape and saves it as a file that is lossless (or can be lossy) to your Mac. A "digital original" [.DV file]
Once the above is done, if you want to, you can using the tool(s) that you prefer edit the "digital original" to make adjustments [color, stabilize, brighten, darken, etc..] as well as split up the "digital original". Then you can save [transcode again] those edits and splits as a new video file(s) in a compressed lossy format that provides significant storage space savings while providing similar visual clarity as "digital original" [.MP4 video file]
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 Mac Computer
macOS Ventura and upwards - make sure Firewire connected device is permission to be accessible:
The first time you connect via firewire cabling into the Thunderbolt port on your Mac with the tape device you should be asked if you want to allow the device to be accessible. In case that doesn't appear follow these steps:
macOS System Settings App > Privacy & Security > Allow Accessories to Connect --> ALWAYS
Make this change temporarily to make sure everything works and your camcorder is accessible if you didn't get a pop up above when first connecting or the Check to See If It Works steps further below don't work. After everything below is working you can change this setting to what it was before or something else that you are happy with. Recommend at least minimally setting it back to Ask for New Accesories.
Software:
Install Homebrew: Directions at: https://brew.sh
Install ffmpeg (at least version 5.0.1_2): via terminal app issue the following command:
Check To See If It Works and is Connected Properly:
Wire up the tape playback device 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) if you have a switch.
Issue the following command from the Terminal app on your Mac -
You should see output similar to the picture below with the name of your tape playback device (camcorder, etc.) model. In my case: DCR-TRV103.
Copy the EXACT spelling and spacing that is shown in output. If your tape playback device is listed that means your Mac and tape player are communicating just fine via your firewire connection. If it's not listed something is wrong. Please check all connections and permissions from prior steps as well as make sure you've installed ffmpeg.
Result of command issued above:
Save Video Tape from Playback Device as a "Digital Original" file on your Mac:
You are ready to now capture the entire tape over to your Mac as a raw Digital Video (.DV) "digital original" file. Once this is done you can at a later point edit, adjust, split, transcode, save and share as appropriate.
The original capture will be BIG (~ 20 GB / hr of taped video) if you want a full digital original (you can do a lossy capture [i.e. MP4] instead and it'll be smaller but you will be losing video data [potentially visible and potentially totally no visible] and you'll have to pull out the tape again if you ever want a higher quality potentially).
If you have space, recommend you capture as losslessly (.DV) 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 that will provide space saving. At that point you can decide if you want to archive the "original" file if you ever want to do further edits or you are happy with your final MP4 files and want to save space and delete the huge originals for space savings.
Make sure the tape playback device (camcorder) is ON and the switch is set to PLAY / VTR mode (not record mode).
Insert your first tape, rewind it fully.
Decide on which capture method you want to use - Command Line (A) or GUI (B)
(A) Command Line Method Using ffmpeg to Capture "Digital Original"
Issue the command below in the terminal app and hit PLAY on the Camcorder immediately.
NOTE: Please replace "DCR-TRV103" with the actual name your tape playback device you copied in prior step. NOTE: 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:
In the above command (https://ffmpeg.org/ffmpeg-devices.html#avfoundation):
Results of capture command issued:
(B) GUI Method Using Open Broadcaster Software to Capture "Digital Original"
A GUI based option for capturing your "Digital Original" file instead of using the ffmpeg via the Terminal App's command line.
You would need to download Open Broadcaster Software from https://obsproject.com or you can install it via Home Brew by issuing the following command from the terminal:
A well done quick intro to the OBS app is at this link in my opinion -
Instead of selecting video source that the YouTube video in link above shows you'd select your firewire connected tape playback devices name which you'd noted down in Check To See If It Works and is Connected Properly section above.
Post Capture:
Now you've captured one or more of your tapes over to your Mac as "Digital Originals" you can decide how you want to edit / correct / split into segments or join various portions, stabilize, color correct, etc. and what compressed format you want to save your corrected video clip(s) as.
You can use Final Cut, iMovie, Davinci Resolve, or a multitude of other applications.
Or some of the open source apps below:
Below is my quick workflow:
1. Do above to capture all tapes into DV format on Mac - I've used the ffmpeg command line option (A)
2. Skim through 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 separate videos (new file). Also note down any notes on the people in the video segment, a small description of the segment and if I want to do something regarding how bright/dim, under / over saturated the video is and if I want any other edits such as stabilization, etc..
Now, in 2023, instead of doing anything further below including the skimming through above -- I'd do all of it inside Shutter Encoder or Shortcut App. For Shutter Encoder, I'd go into the Editing mode (check off Edit Media Content) and start adjusting using the UI the various Image Adjustment sliders and the Correction Sliders and also select my start and end points for each segment I wanted to create a finished video file for. I'd let ShutterEncoder App do the work and if I was curious I'd look at the Job Queue, double click on the job itself and you can see the full FFmpeg command that has been generated and will be run when you start the job queue off. (good way to learn the various FFmpeg parameters as this is a UI that is generating those parameters for you.
(OLD Way) You can adjust many other parameters besides above ones and can actually even pass Adobe Photoshop Curves values or a photoshop ACV file. You can, extract a video frame from a video file as a PNG image file to use in Photoshop where you can make adjustments via curves to that video frame and then you can save those adjustments to a ACV file and apply it against and entire segment of video (from time index X to Y).
i.e. to extract an image (PNG) that you will adjust in Photoshop from a video at the 16 second point into the video file issue the following command:
(OLD Way) Then:
Shutter Encoder App or Shotcut App above may make it easier to view and see the various curve adjustments values for ffmpeg [see above in red ink as to why these apps are easier as compared to using Photoshop imo]
3. (OLD way - See Shutter Encoder app comment above) 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 a 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 each segment.
4. (OLD way - See Shutter Encoder app comment above) 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:
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 [ many other options - https://ffmpeg.org/ffmpeg-filters.html#Video-Filters ]
-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.
A method for converting old videos on tapes (Video8, Digital8, Hi8, VHS, etc..) if you have a old device (camcorder, VCP, VCR, Playback Deck, etc..) that has an IEEE 1394 / Firewire / iLink connector built into it such as my Sony DCR-TRV103 Camcorder does. Many Sony Camcorders of that era have an "iLink" interface (Firewire). Also many S-VHS decks also have a Firewire interface.
Successfully transferred from a Sony camcorder ( DCR-TRV103 ) Video8 tapes over Firewire (Thunderbolt / USB-C) to digital DV files the full RAW tape.
Have done this using FFmpeg (command line) on various Mac's [Intel and Apple Silicon] over multiple macOS versions (10.14, 10.15, 11.x, 12.x, 13.x)
- MacBook Pro 14 2021 model (Apple Silicon - M1 Pro)
- Mac mini (Apple Silicon - M1)
- iMac 27 (Intel - i7, i5)
Have done this using OBS App (GUI) on a MacBook Pro 14 2021 model (Apple Silicon) with macOS 13.2.1
Firewire Connection vs RCA or S-Video Cable connection:
Firewire enables the MAXIMUM quality transfer of the video / audio as compared to an analog S-Video or RCA connector connections.
Using Firewire you can do the initial (or final) transcode & capture which takes the the max quality video/audio from the tape and saves it as a file that is lossless (or can be lossy) to your Mac. A "digital original" [.DV file]
Once the above is done, if you want to, you can using the tool(s) that you prefer edit the "digital original" to make adjustments [color, stabilize, brighten, darken, etc..] as well as split up the "digital original". Then you can save [transcode again] those edits and splits as a new video file(s) in a compressed lossy format that provides significant storage space savings while providing similar visual clarity as "digital original" [.MP4 video file]
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 Mac Computer
macOS Ventura and upwards - make sure Firewire connected device is permission to be accessible:
The first time you connect via firewire cabling into the Thunderbolt port on your Mac with the tape device you should be asked if you want to allow the device to be accessible. In case that doesn't appear follow these steps:
macOS System Settings App > Privacy & Security > Allow Accessories to Connect --> ALWAYS
Make this change temporarily to make sure everything works and your camcorder is accessible if you didn't get a pop up above when first connecting or the Check to See If It Works steps further below don't work. After everything below is working you can change this setting to what it was before or something else that you are happy with. Recommend at least minimally setting it back to Ask for New Accesories.
Software:
Install Homebrew: Directions at: https://brew.sh
Install ffmpeg (at least version 5.0.1_2): via terminal app issue the following command:
Bash:
brew install ffmpeg
Check To See If It Works and is Connected Properly:
Wire up the tape playback device 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) if you have a switch.
Issue the following command from the Terminal app on your Mac -
Bash:
ffmpeg -f avfoundation -list_devices true -i ""
You should see output similar to the picture below with the name of your tape playback device (camcorder, etc.) model. In my case: DCR-TRV103.
Copy the EXACT spelling and spacing that is shown in output. If your tape playback device is listed that means your Mac and tape player are communicating just fine via your firewire connection. If it's not listed something is wrong. Please check all connections and permissions from prior steps as well as make sure you've installed ffmpeg.
Result of command issued above:
Save Video Tape from Playback Device as a "Digital Original" file on your Mac:
You are ready to now capture the entire tape over to your Mac as a raw Digital Video (.DV) "digital original" file. Once this is done you can at a later point edit, adjust, split, transcode, save and share as appropriate.
The original capture will be BIG (~ 20 GB / hr of taped video) if you want a full digital original (you can do a lossy capture [i.e. MP4] instead and it'll be smaller but you will be losing video data [potentially visible and potentially totally no visible] and you'll have to pull out the tape again if you ever want a higher quality potentially).
If you have space, recommend you capture as losslessly (.DV) 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 that will provide space saving. At that point you can decide if you want to archive the "original" file if you ever want to do further edits or you are happy with your final MP4 files and want to save space and delete the huge originals for space savings.
Make sure the tape playback device (camcorder) is ON and the switch is set to PLAY / VTR mode (not record mode).
Insert your first tape, rewind it fully.
Decide on which capture method you want to use - Command Line (A) or GUI (B)
(A) Command Line Method Using ffmpeg to Capture "Digital Original"
Issue the command below in the terminal app and hit PLAY on the Camcorder immediately.
NOTE: Please replace "DCR-TRV103" with the actual name your tape playback device you copied in prior step. NOTE: 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:
Bash:
ffmpeg -f avfoundation -capture_raw_data true -i "DCR-TRV103" -c copy -map 0 -f rawvideo aa_tape_1_capture_video.dv
In the above command (https://ffmpeg.org/ffmpeg-devices.html#avfoundation):
- -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
- aa_tape_1_capture_video.dv is the OUTPUT file name of your "Digital Original" it will be saved as (feel free to use use a file name that you find appropriate with .dv as the file name extension ending)
Results of capture command issued:
(B) GUI Method Using Open Broadcaster Software to Capture "Digital Original"
A GUI based option for capturing your "Digital Original" file instead of using the ffmpeg via the Terminal App's command line.
You would need to download Open Broadcaster Software from https://obsproject.com or you can install it via Home Brew by issuing the following command from the terminal:
Bash:
brew install --cask obs
A well done quick intro to the OBS app is at this link in my opinion -
Instead of selecting video source that the YouTube video in link above shows you'd select your firewire connected tape playback devices name which you'd noted down in Check To See If It Works and is Connected Properly section above.
Post Capture:
Now you've captured one or more of your tapes over to your Mac as "Digital Originals" you can decide how you want to edit / correct / split into segments or join various portions, stabilize, color correct, etc. and what compressed format you want to save your corrected video clip(s) as.
You can use Final Cut, iMovie, Davinci Resolve, or a multitude of other applications.
Or some of the open source apps below:
- Shutter Encoder [ GUI App using FFmpeg to edit, adjust, split, and re-encode video files. Also great tool to learn FFmpeg as what ever you select in the GUI you can actually see the full FFmpeg command line that results from those selections. ] - https://www.shutterencoder.com/en/
- ShotCut [ Full blown video editor ] - https://www.shotcut.org
- Lossless Cut [ GUI based lossless trimming and cutting of video and audio files ] - https://mifi.github.io/lossless-cut/
- MPV [ Video Player ] - https://mpv.io
Below is my quick workflow:
1. Do above to capture all tapes into DV format on Mac - I've used the ffmpeg command line option (A)
2. Skim through 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 separate videos (new file). Also note down any notes on the people in the video segment, a small description of the segment and if I want to do something regarding how bright/dim, under / over saturated the video is and if I want any other edits such as stabilization, etc..
Now, in 2023, instead of doing anything further below including the skimming through above -- I'd do all of it inside Shutter Encoder or Shortcut App. For Shutter Encoder, I'd go into the Editing mode (check off Edit Media Content) and start adjusting using the UI the various Image Adjustment sliders and the Correction Sliders and also select my start and end points for each segment I wanted to create a finished video file for. I'd let ShutterEncoder App do the work and if I was curious I'd look at the Job Queue, double click on the job itself and you can see the full FFmpeg command that has been generated and will be run when you start the job queue off. (good way to learn the various FFmpeg parameters as this is a UI that is generating those parameters for you.
(OLD Way) You can adjust many other parameters besides above ones and can actually even pass Adobe Photoshop Curves values or a photoshop ACV file. You can, extract a video frame from a video file as a PNG image file to use in Photoshop where you can make adjustments via curves to that video frame and then you can save those adjustments to a ACV file and apply it against and entire segment of video (from time index X to Y).
i.e. to extract an image (PNG) that you will adjust in Photoshop from a video at the 16 second point into the video file issue the following command:
Bash:
ffmpeg -ss 0:00:16 -i tape_1_video.dv -frames:v 1 output.png
(OLD Way) 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.
Shutter Encoder App or Shotcut App above may make it easier to view and see the various curve adjustments values for ffmpeg [see above in red ink as to why these apps are easier as compared to using Photoshop imo]
3. (OLD way - See Shutter Encoder app comment above) 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 a 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 each segment.
4. (OLD way - See Shutter Encoder app comment above) 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:
Bash:
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 [ many other options - https://ffmpeg.org/ffmpeg-filters.html#Video-Filters ]
-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: