How to make Handbrake preserve capture time / creation time?
Handbrake is an awesome video compression tool, but it doesn't seem to preserve the original capture time after a video is compressed. Any idea how to fix this?
metadata video-encoding handbrake
add a comment |
Handbrake is an awesome video compression tool, but it doesn't seem to preserve the original capture time after a video is compressed. Any idea how to fix this?
metadata video-encoding handbrake
@slhck Yes I mean Creation Time. I use Lightroom to manage my videos and after compression, the Capture/Creation time becomes Modified Time.
– pixelfreak
Dec 23 '12 at 22:08
add a comment |
Handbrake is an awesome video compression tool, but it doesn't seem to preserve the original capture time after a video is compressed. Any idea how to fix this?
metadata video-encoding handbrake
Handbrake is an awesome video compression tool, but it doesn't seem to preserve the original capture time after a video is compressed. Any idea how to fix this?
metadata video-encoding handbrake
metadata video-encoding handbrake
edited Dec 24 '12 at 12:02
slhck
160k47444466
160k47444466
asked Dec 23 '12 at 9:13
pixelfreakpixelfreak
2061312
2061312
@slhck Yes I mean Creation Time. I use Lightroom to manage my videos and after compression, the Capture/Creation time becomes Modified Time.
– pixelfreak
Dec 23 '12 at 22:08
add a comment |
@slhck Yes I mean Creation Time. I use Lightroom to manage my videos and after compression, the Capture/Creation time becomes Modified Time.
– pixelfreak
Dec 23 '12 at 22:08
@slhck Yes I mean Creation Time. I use Lightroom to manage my videos and after compression, the Capture/Creation time becomes Modified Time.
– pixelfreak
Dec 23 '12 at 22:08
@slhck Yes I mean Creation Time. I use Lightroom to manage my videos and after compression, the Capture/Creation time becomes Modified Time.
– pixelfreak
Dec 23 '12 at 22:08
add a comment |
9 Answers
9
active
oldest
votes
You can copy the existing metadata from one file to another without needing to re-encode the video using FFmpeg. It basically takes one second. To do this, let's assume three files:
in.mp4
– the original file before conversion
out.mp4
– the file after Handbrake conversion
fixed.mp4
– the file with "corrected" metadata
The FFmpeg command to copy the complete metadata record to the new file would then be:
ffmpeg -i in.mp4 -i out.mp4 -map 1 -map_metadata 0 -c copy fixed.mp4
Explanation of syntax:
To break it down, this does the following:
- Take two input files (
in.mp4
andout.mp4
), which are assigned the IDs 0 and 1, respectively. - Map only the video/audio/subtitle streams from file 1 to the output (
-map 1
), so we take the bitstreams that are already converted - Map only the metadata from file 0 to the output (
-map_metadata 0
) - Use the copy codec (
-c copy
) to copy all the bitstreams instead of re-encoding the video.
After that, you could obviously rename fixed.mp4
to out.mp4
.
Proof:
As an example, here's part of the metadata record of my original file:
$ mediainfo in.mp4 | grep "Encoded date" | head -n 1
Encoded date : UTC 2012-01-08 11:16:19
Here's the file after Handbrake conversion:
$ mediainfo out.mp4 | grep "Encoded date" | head -n 1
Encoded date : UTC 2012-12-24 11:39:35
Here's the final file after mapping the metadata:
$ ffmpeg -i in.mp4 -i out.mp4 -map 1 -map_metadata 0 -c copy fixed.mp4
[…]
$ mediainfo fixed.mp4 | grep "Encoded date" | head -n 1
Encoded date : UTC 2012-01-08 11:16:19
If you want to do all with FFmpeg:
Actually, you don't really need to use Handbrake if you can use FFmpeg, which Handbrake relies on anyway. In the simplest case you can do your conversion like this:
ffmpeg -i in.mp4 -c:v libx264 -crf 23 -c:a aac -map_metadata 0 out.mp4
This will convert the input with the x264 encoder and AAC audio to an output file, copying the original metadata. In order to change the quality of the output, you can:
- Change the CRF value for video. Lower means better quality. 23 is default, and anything below 18 will probably be visually lossless.
- Change the bitrate for audio. See the AAC encoding guide for more info.
Read the x264 encoding guide on the FFmpeg wiki for more.
Wow, that's a cool workaround, looks a bit daunting though, I wish Handbrake does this behind-the-scene. Thanks!
– pixelfreak
Dec 28 '12 at 18:31
The metadata transfer command works, but the last command to do the conversion as well gave me anUnknown encoder 'libfaac'
error
– pixelfreak
Mar 29 '15 at 22:09
Then your ffmpeg is not compiled with FAAC support. Try-c:a aac -strict experimental
instead.
– slhck
Mar 30 '15 at 6:38
add a comment |
Unfortunately it seems handbrake can't do it on its own, but similarly to the ffmpeg example, the timestamps can be copied from the original after compression by using the touch
unix command:
touch -r MVI_1234.MOV compressed_MVI_1234.m4v
this will set the timestamp on the compressed file to the same as the given reference file.
It will set the timestamp for the file, yes, but only in the filesystem. The EXIF data will not have the correct "Date/Time Original" timestamp.
– Stephen Schrauger
Jan 15 '14 at 18:40
add a comment |
I found an easier way to do this, using a different software called Adapter
: http://www.macroplant.com/adapter/
It doesn't have all the advanced settings like HandBrake but it does the job (also using ffmpeg) and retains the metadata I need.
1
I don't think Adapter is able to do this. I've just tested the newest version and can't find the setting for retaining metadata anywhere. Additionally, it doesn't seem to convert all video file types, such as MTS, etc.
– jjj
Jul 5 '14 at 11:35
too bad it's not compatible with sony's m2ts format
– Diego Vieira
Feb 7 '16 at 7:08
add a comment |
I am using macOS Yosemite and HandBrakeBatch – use it to convert files, but click at the "keep file creation and modification dates" box in the "Preferences" menu.
Then, I import the videos to Lightroom 5, but they still don't keep the creation dates. But, most importantly, the files are shown in Finder with the correct Creation date. So I selected all of them in the Lightroom library → Metadata (right dialog column) → Capture Time → Change to File's creation date → Change All.
I had 850 old family videos – I had to do this process in batches of 100. Handbrake crashes with a lot of files.
Nice find, can see myself using this app a lot.
– calum_b
Oct 22 '16 at 15:40
Note that the app is no longer maintained: osomac.com/2013/08/08/handbrake-adds-real-batch-processing
– slhck
Jan 10 at 15:45
add a comment |
I made a bash script that can batch transfer the metadata, using touch
as suggested above. For it to work you must have your original and converted files on separate directories, each with the same number of files (the directories must only have the video files, as other files/directories will interfere) and in the same order. Then it just copies the metadata and you're all set and done. The script lists all the file pairs so you can check for errors in the end if you want.
The code might not be the neatest as it was my first proper bash script, but it's been pretty fast and stable for me, so here goes:
#!/bin/bash
#Sets IFS to n to allow for filenames with spaces
IFS=$'n'
#Source directory and converted direcotry
dir1=$1
dir2=$2
#Array with source filepaths
srcf=()
#Array with converted filepaths
cnvf=()
#Adds filepaths from the source directory to srcf array
for file in $(ls -1 $dir1); do
srcf+=("$dir1/$file")
done
#Adds filepaths from the converted directory to cnvf array
for file in $(ls -1 $dir2); do
cnvf+=("$dir2/$file")
done
#Checks if source and convert folders have the same number of files
if [ ${#srcf[*]} -eq ${#cnvf[*]} ]
then
#Counter variable
fnum=0
#Loops through the arrays and runs touch command on pairs of files to transfer the metadata
while [ $fnum -lt ${#srcf[*]} ]; do
echo $fnum
echo ${srcf[$fnum]} ${cnvf[$fnum]}
touch -r ${srcf[$fnum]} ${cnvf[$fnum]}
((fnum++))
done
else
echo "The provided paths do not have the same number of files. Both paths must have the same number of files in the same order."
fi
To run do: sudo bash script.sh /sourcedir /converteddir
add a comment |
If you mean the file-level modification time, then I had the same problem, and was able to recover it with exiftool.
exiftool -tagsFromFile input.mp4 -extractEmbedded -all:all -FileModifyDate -overwrite_original output.mp4
This takes the metadata and FileModifyDate
from input.mp4
and copies it to output.mp4
.
To automate this as I had a large number of files to transcode, I created a tool called Shrinkwrap that first transcodes with FFmpeg (I moved away from HandBrake because of needing to preserve more metadata), then recovers the modification timestamp with exiftool.
add a comment |
After much searching, I mostly gave up on using old video files with correct date created/modified to overwrite the date created/modified of my new Handbrake-compressed video files. Since most of my videos have the date/time in the filename, I experimented and got two methods to work. The first and best is to use Advanced Renamer's timestamp method, which CAN change file date modified, created, and accessed, not just the file name itself. https://www.advancedrenamer.com/download.
I also found a powershell script https://www.michaelmiklis.de/set-creation-and-modification-date-from-filename/ which could be adapted by a programmer for other file name/date formats. In its current state it only works if the filename is structured exactly as it is in that example.
Fortunately my number of videos without the date modified in the filename is low enough I can change those manually, won't take too long.
I tried using ffmpeg, but its map_metadata command only changes data inside the file, not the date modified, created of the file itself. That kind of internal metadata Handbrake already does fine with anyways.
add a comment |
The program MyFFmpeg does this very well. In its options there is a choice to Keep Original Creation/Modified Date from Source File.
I had been looking for this because I have my home videos on a Plex server and the files are organized by the creation date, which is very useful if you want to see stuff from a particular year.
Unfortunately this is not a free option, currently costs 20 euros or about 21 US. They do have a trial for 10 uses before you have to buy a license. Surprised some of the free ffmpeg GUIs don't have or add this option.
add a comment |
I try to maintain the creation date while I compress my incredibly large GoPro MP4 videos into H.264.
I found the program HandBrakeBatch. It's exactly what I need to compress over 1000 files in one go, while keeping the creation date (metadata).
Have not found any other programs that are able to do this. Tried with FFmpeg, HandBrake and Wonderful Video Converter, but no.
Note that HandBrakeBatch is no longer maintained: osomac.com/2013/08/08/handbrake-adds-real-batch-processing
– slhck
Jan 10 at 15:43
add a comment |
protected by Pimp Juice IT Jan 9 at 3:38
Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?
9 Answers
9
active
oldest
votes
9 Answers
9
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can copy the existing metadata from one file to another without needing to re-encode the video using FFmpeg. It basically takes one second. To do this, let's assume three files:
in.mp4
– the original file before conversion
out.mp4
– the file after Handbrake conversion
fixed.mp4
– the file with "corrected" metadata
The FFmpeg command to copy the complete metadata record to the new file would then be:
ffmpeg -i in.mp4 -i out.mp4 -map 1 -map_metadata 0 -c copy fixed.mp4
Explanation of syntax:
To break it down, this does the following:
- Take two input files (
in.mp4
andout.mp4
), which are assigned the IDs 0 and 1, respectively. - Map only the video/audio/subtitle streams from file 1 to the output (
-map 1
), so we take the bitstreams that are already converted - Map only the metadata from file 0 to the output (
-map_metadata 0
) - Use the copy codec (
-c copy
) to copy all the bitstreams instead of re-encoding the video.
After that, you could obviously rename fixed.mp4
to out.mp4
.
Proof:
As an example, here's part of the metadata record of my original file:
$ mediainfo in.mp4 | grep "Encoded date" | head -n 1
Encoded date : UTC 2012-01-08 11:16:19
Here's the file after Handbrake conversion:
$ mediainfo out.mp4 | grep "Encoded date" | head -n 1
Encoded date : UTC 2012-12-24 11:39:35
Here's the final file after mapping the metadata:
$ ffmpeg -i in.mp4 -i out.mp4 -map 1 -map_metadata 0 -c copy fixed.mp4
[…]
$ mediainfo fixed.mp4 | grep "Encoded date" | head -n 1
Encoded date : UTC 2012-01-08 11:16:19
If you want to do all with FFmpeg:
Actually, you don't really need to use Handbrake if you can use FFmpeg, which Handbrake relies on anyway. In the simplest case you can do your conversion like this:
ffmpeg -i in.mp4 -c:v libx264 -crf 23 -c:a aac -map_metadata 0 out.mp4
This will convert the input with the x264 encoder and AAC audio to an output file, copying the original metadata. In order to change the quality of the output, you can:
- Change the CRF value for video. Lower means better quality. 23 is default, and anything below 18 will probably be visually lossless.
- Change the bitrate for audio. See the AAC encoding guide for more info.
Read the x264 encoding guide on the FFmpeg wiki for more.
Wow, that's a cool workaround, looks a bit daunting though, I wish Handbrake does this behind-the-scene. Thanks!
– pixelfreak
Dec 28 '12 at 18:31
The metadata transfer command works, but the last command to do the conversion as well gave me anUnknown encoder 'libfaac'
error
– pixelfreak
Mar 29 '15 at 22:09
Then your ffmpeg is not compiled with FAAC support. Try-c:a aac -strict experimental
instead.
– slhck
Mar 30 '15 at 6:38
add a comment |
You can copy the existing metadata from one file to another without needing to re-encode the video using FFmpeg. It basically takes one second. To do this, let's assume three files:
in.mp4
– the original file before conversion
out.mp4
– the file after Handbrake conversion
fixed.mp4
– the file with "corrected" metadata
The FFmpeg command to copy the complete metadata record to the new file would then be:
ffmpeg -i in.mp4 -i out.mp4 -map 1 -map_metadata 0 -c copy fixed.mp4
Explanation of syntax:
To break it down, this does the following:
- Take two input files (
in.mp4
andout.mp4
), which are assigned the IDs 0 and 1, respectively. - Map only the video/audio/subtitle streams from file 1 to the output (
-map 1
), so we take the bitstreams that are already converted - Map only the metadata from file 0 to the output (
-map_metadata 0
) - Use the copy codec (
-c copy
) to copy all the bitstreams instead of re-encoding the video.
After that, you could obviously rename fixed.mp4
to out.mp4
.
Proof:
As an example, here's part of the metadata record of my original file:
$ mediainfo in.mp4 | grep "Encoded date" | head -n 1
Encoded date : UTC 2012-01-08 11:16:19
Here's the file after Handbrake conversion:
$ mediainfo out.mp4 | grep "Encoded date" | head -n 1
Encoded date : UTC 2012-12-24 11:39:35
Here's the final file after mapping the metadata:
$ ffmpeg -i in.mp4 -i out.mp4 -map 1 -map_metadata 0 -c copy fixed.mp4
[…]
$ mediainfo fixed.mp4 | grep "Encoded date" | head -n 1
Encoded date : UTC 2012-01-08 11:16:19
If you want to do all with FFmpeg:
Actually, you don't really need to use Handbrake if you can use FFmpeg, which Handbrake relies on anyway. In the simplest case you can do your conversion like this:
ffmpeg -i in.mp4 -c:v libx264 -crf 23 -c:a aac -map_metadata 0 out.mp4
This will convert the input with the x264 encoder and AAC audio to an output file, copying the original metadata. In order to change the quality of the output, you can:
- Change the CRF value for video. Lower means better quality. 23 is default, and anything below 18 will probably be visually lossless.
- Change the bitrate for audio. See the AAC encoding guide for more info.
Read the x264 encoding guide on the FFmpeg wiki for more.
Wow, that's a cool workaround, looks a bit daunting though, I wish Handbrake does this behind-the-scene. Thanks!
– pixelfreak
Dec 28 '12 at 18:31
The metadata transfer command works, but the last command to do the conversion as well gave me anUnknown encoder 'libfaac'
error
– pixelfreak
Mar 29 '15 at 22:09
Then your ffmpeg is not compiled with FAAC support. Try-c:a aac -strict experimental
instead.
– slhck
Mar 30 '15 at 6:38
add a comment |
You can copy the existing metadata from one file to another without needing to re-encode the video using FFmpeg. It basically takes one second. To do this, let's assume three files:
in.mp4
– the original file before conversion
out.mp4
– the file after Handbrake conversion
fixed.mp4
– the file with "corrected" metadata
The FFmpeg command to copy the complete metadata record to the new file would then be:
ffmpeg -i in.mp4 -i out.mp4 -map 1 -map_metadata 0 -c copy fixed.mp4
Explanation of syntax:
To break it down, this does the following:
- Take two input files (
in.mp4
andout.mp4
), which are assigned the IDs 0 and 1, respectively. - Map only the video/audio/subtitle streams from file 1 to the output (
-map 1
), so we take the bitstreams that are already converted - Map only the metadata from file 0 to the output (
-map_metadata 0
) - Use the copy codec (
-c copy
) to copy all the bitstreams instead of re-encoding the video.
After that, you could obviously rename fixed.mp4
to out.mp4
.
Proof:
As an example, here's part of the metadata record of my original file:
$ mediainfo in.mp4 | grep "Encoded date" | head -n 1
Encoded date : UTC 2012-01-08 11:16:19
Here's the file after Handbrake conversion:
$ mediainfo out.mp4 | grep "Encoded date" | head -n 1
Encoded date : UTC 2012-12-24 11:39:35
Here's the final file after mapping the metadata:
$ ffmpeg -i in.mp4 -i out.mp4 -map 1 -map_metadata 0 -c copy fixed.mp4
[…]
$ mediainfo fixed.mp4 | grep "Encoded date" | head -n 1
Encoded date : UTC 2012-01-08 11:16:19
If you want to do all with FFmpeg:
Actually, you don't really need to use Handbrake if you can use FFmpeg, which Handbrake relies on anyway. In the simplest case you can do your conversion like this:
ffmpeg -i in.mp4 -c:v libx264 -crf 23 -c:a aac -map_metadata 0 out.mp4
This will convert the input with the x264 encoder and AAC audio to an output file, copying the original metadata. In order to change the quality of the output, you can:
- Change the CRF value for video. Lower means better quality. 23 is default, and anything below 18 will probably be visually lossless.
- Change the bitrate for audio. See the AAC encoding guide for more info.
Read the x264 encoding guide on the FFmpeg wiki for more.
You can copy the existing metadata from one file to another without needing to re-encode the video using FFmpeg. It basically takes one second. To do this, let's assume three files:
in.mp4
– the original file before conversion
out.mp4
– the file after Handbrake conversion
fixed.mp4
– the file with "corrected" metadata
The FFmpeg command to copy the complete metadata record to the new file would then be:
ffmpeg -i in.mp4 -i out.mp4 -map 1 -map_metadata 0 -c copy fixed.mp4
Explanation of syntax:
To break it down, this does the following:
- Take two input files (
in.mp4
andout.mp4
), which are assigned the IDs 0 and 1, respectively. - Map only the video/audio/subtitle streams from file 1 to the output (
-map 1
), so we take the bitstreams that are already converted - Map only the metadata from file 0 to the output (
-map_metadata 0
) - Use the copy codec (
-c copy
) to copy all the bitstreams instead of re-encoding the video.
After that, you could obviously rename fixed.mp4
to out.mp4
.
Proof:
As an example, here's part of the metadata record of my original file:
$ mediainfo in.mp4 | grep "Encoded date" | head -n 1
Encoded date : UTC 2012-01-08 11:16:19
Here's the file after Handbrake conversion:
$ mediainfo out.mp4 | grep "Encoded date" | head -n 1
Encoded date : UTC 2012-12-24 11:39:35
Here's the final file after mapping the metadata:
$ ffmpeg -i in.mp4 -i out.mp4 -map 1 -map_metadata 0 -c copy fixed.mp4
[…]
$ mediainfo fixed.mp4 | grep "Encoded date" | head -n 1
Encoded date : UTC 2012-01-08 11:16:19
If you want to do all with FFmpeg:
Actually, you don't really need to use Handbrake if you can use FFmpeg, which Handbrake relies on anyway. In the simplest case you can do your conversion like this:
ffmpeg -i in.mp4 -c:v libx264 -crf 23 -c:a aac -map_metadata 0 out.mp4
This will convert the input with the x264 encoder and AAC audio to an output file, copying the original metadata. In order to change the quality of the output, you can:
- Change the CRF value for video. Lower means better quality. 23 is default, and anything below 18 will probably be visually lossless.
- Change the bitrate for audio. See the AAC encoding guide for more info.
Read the x264 encoding guide on the FFmpeg wiki for more.
edited Jan 10 at 15:46
answered Dec 24 '12 at 12:01
slhckslhck
160k47444466
160k47444466
Wow, that's a cool workaround, looks a bit daunting though, I wish Handbrake does this behind-the-scene. Thanks!
– pixelfreak
Dec 28 '12 at 18:31
The metadata transfer command works, but the last command to do the conversion as well gave me anUnknown encoder 'libfaac'
error
– pixelfreak
Mar 29 '15 at 22:09
Then your ffmpeg is not compiled with FAAC support. Try-c:a aac -strict experimental
instead.
– slhck
Mar 30 '15 at 6:38
add a comment |
Wow, that's a cool workaround, looks a bit daunting though, I wish Handbrake does this behind-the-scene. Thanks!
– pixelfreak
Dec 28 '12 at 18:31
The metadata transfer command works, but the last command to do the conversion as well gave me anUnknown encoder 'libfaac'
error
– pixelfreak
Mar 29 '15 at 22:09
Then your ffmpeg is not compiled with FAAC support. Try-c:a aac -strict experimental
instead.
– slhck
Mar 30 '15 at 6:38
Wow, that's a cool workaround, looks a bit daunting though, I wish Handbrake does this behind-the-scene. Thanks!
– pixelfreak
Dec 28 '12 at 18:31
Wow, that's a cool workaround, looks a bit daunting though, I wish Handbrake does this behind-the-scene. Thanks!
– pixelfreak
Dec 28 '12 at 18:31
The metadata transfer command works, but the last command to do the conversion as well gave me an
Unknown encoder 'libfaac'
error– pixelfreak
Mar 29 '15 at 22:09
The metadata transfer command works, but the last command to do the conversion as well gave me an
Unknown encoder 'libfaac'
error– pixelfreak
Mar 29 '15 at 22:09
Then your ffmpeg is not compiled with FAAC support. Try
-c:a aac -strict experimental
instead.– slhck
Mar 30 '15 at 6:38
Then your ffmpeg is not compiled with FAAC support. Try
-c:a aac -strict experimental
instead.– slhck
Mar 30 '15 at 6:38
add a comment |
Unfortunately it seems handbrake can't do it on its own, but similarly to the ffmpeg example, the timestamps can be copied from the original after compression by using the touch
unix command:
touch -r MVI_1234.MOV compressed_MVI_1234.m4v
this will set the timestamp on the compressed file to the same as the given reference file.
It will set the timestamp for the file, yes, but only in the filesystem. The EXIF data will not have the correct "Date/Time Original" timestamp.
– Stephen Schrauger
Jan 15 '14 at 18:40
add a comment |
Unfortunately it seems handbrake can't do it on its own, but similarly to the ffmpeg example, the timestamps can be copied from the original after compression by using the touch
unix command:
touch -r MVI_1234.MOV compressed_MVI_1234.m4v
this will set the timestamp on the compressed file to the same as the given reference file.
It will set the timestamp for the file, yes, but only in the filesystem. The EXIF data will not have the correct "Date/Time Original" timestamp.
– Stephen Schrauger
Jan 15 '14 at 18:40
add a comment |
Unfortunately it seems handbrake can't do it on its own, but similarly to the ffmpeg example, the timestamps can be copied from the original after compression by using the touch
unix command:
touch -r MVI_1234.MOV compressed_MVI_1234.m4v
this will set the timestamp on the compressed file to the same as the given reference file.
Unfortunately it seems handbrake can't do it on its own, but similarly to the ffmpeg example, the timestamps can be copied from the original after compression by using the touch
unix command:
touch -r MVI_1234.MOV compressed_MVI_1234.m4v
this will set the timestamp on the compressed file to the same as the given reference file.
answered Aug 11 '13 at 15:28
André FernandesAndré Fernandes
231217
231217
It will set the timestamp for the file, yes, but only in the filesystem. The EXIF data will not have the correct "Date/Time Original" timestamp.
– Stephen Schrauger
Jan 15 '14 at 18:40
add a comment |
It will set the timestamp for the file, yes, but only in the filesystem. The EXIF data will not have the correct "Date/Time Original" timestamp.
– Stephen Schrauger
Jan 15 '14 at 18:40
It will set the timestamp for the file, yes, but only in the filesystem. The EXIF data will not have the correct "Date/Time Original" timestamp.
– Stephen Schrauger
Jan 15 '14 at 18:40
It will set the timestamp for the file, yes, but only in the filesystem. The EXIF data will not have the correct "Date/Time Original" timestamp.
– Stephen Schrauger
Jan 15 '14 at 18:40
add a comment |
I found an easier way to do this, using a different software called Adapter
: http://www.macroplant.com/adapter/
It doesn't have all the advanced settings like HandBrake but it does the job (also using ffmpeg) and retains the metadata I need.
1
I don't think Adapter is able to do this. I've just tested the newest version and can't find the setting for retaining metadata anywhere. Additionally, it doesn't seem to convert all video file types, such as MTS, etc.
– jjj
Jul 5 '14 at 11:35
too bad it's not compatible with sony's m2ts format
– Diego Vieira
Feb 7 '16 at 7:08
add a comment |
I found an easier way to do this, using a different software called Adapter
: http://www.macroplant.com/adapter/
It doesn't have all the advanced settings like HandBrake but it does the job (also using ffmpeg) and retains the metadata I need.
1
I don't think Adapter is able to do this. I've just tested the newest version and can't find the setting for retaining metadata anywhere. Additionally, it doesn't seem to convert all video file types, such as MTS, etc.
– jjj
Jul 5 '14 at 11:35
too bad it's not compatible with sony's m2ts format
– Diego Vieira
Feb 7 '16 at 7:08
add a comment |
I found an easier way to do this, using a different software called Adapter
: http://www.macroplant.com/adapter/
It doesn't have all the advanced settings like HandBrake but it does the job (also using ffmpeg) and retains the metadata I need.
I found an easier way to do this, using a different software called Adapter
: http://www.macroplant.com/adapter/
It doesn't have all the advanced settings like HandBrake but it does the job (also using ffmpeg) and retains the metadata I need.
answered Dec 28 '12 at 20:05
pixelfreakpixelfreak
2061312
2061312
1
I don't think Adapter is able to do this. I've just tested the newest version and can't find the setting for retaining metadata anywhere. Additionally, it doesn't seem to convert all video file types, such as MTS, etc.
– jjj
Jul 5 '14 at 11:35
too bad it's not compatible with sony's m2ts format
– Diego Vieira
Feb 7 '16 at 7:08
add a comment |
1
I don't think Adapter is able to do this. I've just tested the newest version and can't find the setting for retaining metadata anywhere. Additionally, it doesn't seem to convert all video file types, such as MTS, etc.
– jjj
Jul 5 '14 at 11:35
too bad it's not compatible with sony's m2ts format
– Diego Vieira
Feb 7 '16 at 7:08
1
1
I don't think Adapter is able to do this. I've just tested the newest version and can't find the setting for retaining metadata anywhere. Additionally, it doesn't seem to convert all video file types, such as MTS, etc.
– jjj
Jul 5 '14 at 11:35
I don't think Adapter is able to do this. I've just tested the newest version and can't find the setting for retaining metadata anywhere. Additionally, it doesn't seem to convert all video file types, such as MTS, etc.
– jjj
Jul 5 '14 at 11:35
too bad it's not compatible with sony's m2ts format
– Diego Vieira
Feb 7 '16 at 7:08
too bad it's not compatible with sony's m2ts format
– Diego Vieira
Feb 7 '16 at 7:08
add a comment |
I am using macOS Yosemite and HandBrakeBatch – use it to convert files, but click at the "keep file creation and modification dates" box in the "Preferences" menu.
Then, I import the videos to Lightroom 5, but they still don't keep the creation dates. But, most importantly, the files are shown in Finder with the correct Creation date. So I selected all of them in the Lightroom library → Metadata (right dialog column) → Capture Time → Change to File's creation date → Change All.
I had 850 old family videos – I had to do this process in batches of 100. Handbrake crashes with a lot of files.
Nice find, can see myself using this app a lot.
– calum_b
Oct 22 '16 at 15:40
Note that the app is no longer maintained: osomac.com/2013/08/08/handbrake-adds-real-batch-processing
– slhck
Jan 10 at 15:45
add a comment |
I am using macOS Yosemite and HandBrakeBatch – use it to convert files, but click at the "keep file creation and modification dates" box in the "Preferences" menu.
Then, I import the videos to Lightroom 5, but they still don't keep the creation dates. But, most importantly, the files are shown in Finder with the correct Creation date. So I selected all of them in the Lightroom library → Metadata (right dialog column) → Capture Time → Change to File's creation date → Change All.
I had 850 old family videos – I had to do this process in batches of 100. Handbrake crashes with a lot of files.
Nice find, can see myself using this app a lot.
– calum_b
Oct 22 '16 at 15:40
Note that the app is no longer maintained: osomac.com/2013/08/08/handbrake-adds-real-batch-processing
– slhck
Jan 10 at 15:45
add a comment |
I am using macOS Yosemite and HandBrakeBatch – use it to convert files, but click at the "keep file creation and modification dates" box in the "Preferences" menu.
Then, I import the videos to Lightroom 5, but they still don't keep the creation dates. But, most importantly, the files are shown in Finder with the correct Creation date. So I selected all of them in the Lightroom library → Metadata (right dialog column) → Capture Time → Change to File's creation date → Change All.
I had 850 old family videos – I had to do this process in batches of 100. Handbrake crashes with a lot of files.
I am using macOS Yosemite and HandBrakeBatch – use it to convert files, but click at the "keep file creation and modification dates" box in the "Preferences" menu.
Then, I import the videos to Lightroom 5, but they still don't keep the creation dates. But, most importantly, the files are shown in Finder with the correct Creation date. So I selected all of them in the Lightroom library → Metadata (right dialog column) → Capture Time → Change to File's creation date → Change All.
I had 850 old family videos – I had to do this process in batches of 100. Handbrake crashes with a lot of files.
edited Jan 10 at 15:45
slhck
160k47444466
160k47444466
answered Dec 8 '14 at 14:54
RegisRegis
211
211
Nice find, can see myself using this app a lot.
– calum_b
Oct 22 '16 at 15:40
Note that the app is no longer maintained: osomac.com/2013/08/08/handbrake-adds-real-batch-processing
– slhck
Jan 10 at 15:45
add a comment |
Nice find, can see myself using this app a lot.
– calum_b
Oct 22 '16 at 15:40
Note that the app is no longer maintained: osomac.com/2013/08/08/handbrake-adds-real-batch-processing
– slhck
Jan 10 at 15:45
Nice find, can see myself using this app a lot.
– calum_b
Oct 22 '16 at 15:40
Nice find, can see myself using this app a lot.
– calum_b
Oct 22 '16 at 15:40
Note that the app is no longer maintained: osomac.com/2013/08/08/handbrake-adds-real-batch-processing
– slhck
Jan 10 at 15:45
Note that the app is no longer maintained: osomac.com/2013/08/08/handbrake-adds-real-batch-processing
– slhck
Jan 10 at 15:45
add a comment |
I made a bash script that can batch transfer the metadata, using touch
as suggested above. For it to work you must have your original and converted files on separate directories, each with the same number of files (the directories must only have the video files, as other files/directories will interfere) and in the same order. Then it just copies the metadata and you're all set and done. The script lists all the file pairs so you can check for errors in the end if you want.
The code might not be the neatest as it was my first proper bash script, but it's been pretty fast and stable for me, so here goes:
#!/bin/bash
#Sets IFS to n to allow for filenames with spaces
IFS=$'n'
#Source directory and converted direcotry
dir1=$1
dir2=$2
#Array with source filepaths
srcf=()
#Array with converted filepaths
cnvf=()
#Adds filepaths from the source directory to srcf array
for file in $(ls -1 $dir1); do
srcf+=("$dir1/$file")
done
#Adds filepaths from the converted directory to cnvf array
for file in $(ls -1 $dir2); do
cnvf+=("$dir2/$file")
done
#Checks if source and convert folders have the same number of files
if [ ${#srcf[*]} -eq ${#cnvf[*]} ]
then
#Counter variable
fnum=0
#Loops through the arrays and runs touch command on pairs of files to transfer the metadata
while [ $fnum -lt ${#srcf[*]} ]; do
echo $fnum
echo ${srcf[$fnum]} ${cnvf[$fnum]}
touch -r ${srcf[$fnum]} ${cnvf[$fnum]}
((fnum++))
done
else
echo "The provided paths do not have the same number of files. Both paths must have the same number of files in the same order."
fi
To run do: sudo bash script.sh /sourcedir /converteddir
add a comment |
I made a bash script that can batch transfer the metadata, using touch
as suggested above. For it to work you must have your original and converted files on separate directories, each with the same number of files (the directories must only have the video files, as other files/directories will interfere) and in the same order. Then it just copies the metadata and you're all set and done. The script lists all the file pairs so you can check for errors in the end if you want.
The code might not be the neatest as it was my first proper bash script, but it's been pretty fast and stable for me, so here goes:
#!/bin/bash
#Sets IFS to n to allow for filenames with spaces
IFS=$'n'
#Source directory and converted direcotry
dir1=$1
dir2=$2
#Array with source filepaths
srcf=()
#Array with converted filepaths
cnvf=()
#Adds filepaths from the source directory to srcf array
for file in $(ls -1 $dir1); do
srcf+=("$dir1/$file")
done
#Adds filepaths from the converted directory to cnvf array
for file in $(ls -1 $dir2); do
cnvf+=("$dir2/$file")
done
#Checks if source and convert folders have the same number of files
if [ ${#srcf[*]} -eq ${#cnvf[*]} ]
then
#Counter variable
fnum=0
#Loops through the arrays and runs touch command on pairs of files to transfer the metadata
while [ $fnum -lt ${#srcf[*]} ]; do
echo $fnum
echo ${srcf[$fnum]} ${cnvf[$fnum]}
touch -r ${srcf[$fnum]} ${cnvf[$fnum]}
((fnum++))
done
else
echo "The provided paths do not have the same number of files. Both paths must have the same number of files in the same order."
fi
To run do: sudo bash script.sh /sourcedir /converteddir
add a comment |
I made a bash script that can batch transfer the metadata, using touch
as suggested above. For it to work you must have your original and converted files on separate directories, each with the same number of files (the directories must only have the video files, as other files/directories will interfere) and in the same order. Then it just copies the metadata and you're all set and done. The script lists all the file pairs so you can check for errors in the end if you want.
The code might not be the neatest as it was my first proper bash script, but it's been pretty fast and stable for me, so here goes:
#!/bin/bash
#Sets IFS to n to allow for filenames with spaces
IFS=$'n'
#Source directory and converted direcotry
dir1=$1
dir2=$2
#Array with source filepaths
srcf=()
#Array with converted filepaths
cnvf=()
#Adds filepaths from the source directory to srcf array
for file in $(ls -1 $dir1); do
srcf+=("$dir1/$file")
done
#Adds filepaths from the converted directory to cnvf array
for file in $(ls -1 $dir2); do
cnvf+=("$dir2/$file")
done
#Checks if source and convert folders have the same number of files
if [ ${#srcf[*]} -eq ${#cnvf[*]} ]
then
#Counter variable
fnum=0
#Loops through the arrays and runs touch command on pairs of files to transfer the metadata
while [ $fnum -lt ${#srcf[*]} ]; do
echo $fnum
echo ${srcf[$fnum]} ${cnvf[$fnum]}
touch -r ${srcf[$fnum]} ${cnvf[$fnum]}
((fnum++))
done
else
echo "The provided paths do not have the same number of files. Both paths must have the same number of files in the same order."
fi
To run do: sudo bash script.sh /sourcedir /converteddir
I made a bash script that can batch transfer the metadata, using touch
as suggested above. For it to work you must have your original and converted files on separate directories, each with the same number of files (the directories must only have the video files, as other files/directories will interfere) and in the same order. Then it just copies the metadata and you're all set and done. The script lists all the file pairs so you can check for errors in the end if you want.
The code might not be the neatest as it was my first proper bash script, but it's been pretty fast and stable for me, so here goes:
#!/bin/bash
#Sets IFS to n to allow for filenames with spaces
IFS=$'n'
#Source directory and converted direcotry
dir1=$1
dir2=$2
#Array with source filepaths
srcf=()
#Array with converted filepaths
cnvf=()
#Adds filepaths from the source directory to srcf array
for file in $(ls -1 $dir1); do
srcf+=("$dir1/$file")
done
#Adds filepaths from the converted directory to cnvf array
for file in $(ls -1 $dir2); do
cnvf+=("$dir2/$file")
done
#Checks if source and convert folders have the same number of files
if [ ${#srcf[*]} -eq ${#cnvf[*]} ]
then
#Counter variable
fnum=0
#Loops through the arrays and runs touch command on pairs of files to transfer the metadata
while [ $fnum -lt ${#srcf[*]} ]; do
echo $fnum
echo ${srcf[$fnum]} ${cnvf[$fnum]}
touch -r ${srcf[$fnum]} ${cnvf[$fnum]}
((fnum++))
done
else
echo "The provided paths do not have the same number of files. Both paths must have the same number of files in the same order."
fi
To run do: sudo bash script.sh /sourcedir /converteddir
edited May 1 '18 at 1:56
JonathanDavidArndt
79111227
79111227
answered May 1 '18 at 0:43
António BezerraAntónio Bezerra
111
111
add a comment |
add a comment |
If you mean the file-level modification time, then I had the same problem, and was able to recover it with exiftool.
exiftool -tagsFromFile input.mp4 -extractEmbedded -all:all -FileModifyDate -overwrite_original output.mp4
This takes the metadata and FileModifyDate
from input.mp4
and copies it to output.mp4
.
To automate this as I had a large number of files to transcode, I created a tool called Shrinkwrap that first transcodes with FFmpeg (I moved away from HandBrake because of needing to preserve more metadata), then recovers the modification timestamp with exiftool.
add a comment |
If you mean the file-level modification time, then I had the same problem, and was able to recover it with exiftool.
exiftool -tagsFromFile input.mp4 -extractEmbedded -all:all -FileModifyDate -overwrite_original output.mp4
This takes the metadata and FileModifyDate
from input.mp4
and copies it to output.mp4
.
To automate this as I had a large number of files to transcode, I created a tool called Shrinkwrap that first transcodes with FFmpeg (I moved away from HandBrake because of needing to preserve more metadata), then recovers the modification timestamp with exiftool.
add a comment |
If you mean the file-level modification time, then I had the same problem, and was able to recover it with exiftool.
exiftool -tagsFromFile input.mp4 -extractEmbedded -all:all -FileModifyDate -overwrite_original output.mp4
This takes the metadata and FileModifyDate
from input.mp4
and copies it to output.mp4
.
To automate this as I had a large number of files to transcode, I created a tool called Shrinkwrap that first transcodes with FFmpeg (I moved away from HandBrake because of needing to preserve more metadata), then recovers the modification timestamp with exiftool.
If you mean the file-level modification time, then I had the same problem, and was able to recover it with exiftool.
exiftool -tagsFromFile input.mp4 -extractEmbedded -all:all -FileModifyDate -overwrite_original output.mp4
This takes the metadata and FileModifyDate
from input.mp4
and copies it to output.mp4
.
To automate this as I had a large number of files to transcode, I created a tool called Shrinkwrap that first transcodes with FFmpeg (I moved away from HandBrake because of needing to preserve more metadata), then recovers the modification timestamp with exiftool.
answered Nov 8 '18 at 22:34
bennetimobennetimo
112
112
add a comment |
add a comment |
After much searching, I mostly gave up on using old video files with correct date created/modified to overwrite the date created/modified of my new Handbrake-compressed video files. Since most of my videos have the date/time in the filename, I experimented and got two methods to work. The first and best is to use Advanced Renamer's timestamp method, which CAN change file date modified, created, and accessed, not just the file name itself. https://www.advancedrenamer.com/download.
I also found a powershell script https://www.michaelmiklis.de/set-creation-and-modification-date-from-filename/ which could be adapted by a programmer for other file name/date formats. In its current state it only works if the filename is structured exactly as it is in that example.
Fortunately my number of videos without the date modified in the filename is low enough I can change those manually, won't take too long.
I tried using ffmpeg, but its map_metadata command only changes data inside the file, not the date modified, created of the file itself. That kind of internal metadata Handbrake already does fine with anyways.
add a comment |
After much searching, I mostly gave up on using old video files with correct date created/modified to overwrite the date created/modified of my new Handbrake-compressed video files. Since most of my videos have the date/time in the filename, I experimented and got two methods to work. The first and best is to use Advanced Renamer's timestamp method, which CAN change file date modified, created, and accessed, not just the file name itself. https://www.advancedrenamer.com/download.
I also found a powershell script https://www.michaelmiklis.de/set-creation-and-modification-date-from-filename/ which could be adapted by a programmer for other file name/date formats. In its current state it only works if the filename is structured exactly as it is in that example.
Fortunately my number of videos without the date modified in the filename is low enough I can change those manually, won't take too long.
I tried using ffmpeg, but its map_metadata command only changes data inside the file, not the date modified, created of the file itself. That kind of internal metadata Handbrake already does fine with anyways.
add a comment |
After much searching, I mostly gave up on using old video files with correct date created/modified to overwrite the date created/modified of my new Handbrake-compressed video files. Since most of my videos have the date/time in the filename, I experimented and got two methods to work. The first and best is to use Advanced Renamer's timestamp method, which CAN change file date modified, created, and accessed, not just the file name itself. https://www.advancedrenamer.com/download.
I also found a powershell script https://www.michaelmiklis.de/set-creation-and-modification-date-from-filename/ which could be adapted by a programmer for other file name/date formats. In its current state it only works if the filename is structured exactly as it is in that example.
Fortunately my number of videos without the date modified in the filename is low enough I can change those manually, won't take too long.
I tried using ffmpeg, but its map_metadata command only changes data inside the file, not the date modified, created of the file itself. That kind of internal metadata Handbrake already does fine with anyways.
After much searching, I mostly gave up on using old video files with correct date created/modified to overwrite the date created/modified of my new Handbrake-compressed video files. Since most of my videos have the date/time in the filename, I experimented and got two methods to work. The first and best is to use Advanced Renamer's timestamp method, which CAN change file date modified, created, and accessed, not just the file name itself. https://www.advancedrenamer.com/download.
I also found a powershell script https://www.michaelmiklis.de/set-creation-and-modification-date-from-filename/ which could be adapted by a programmer for other file name/date formats. In its current state it only works if the filename is structured exactly as it is in that example.
Fortunately my number of videos without the date modified in the filename is low enough I can change those manually, won't take too long.
I tried using ffmpeg, but its map_metadata command only changes data inside the file, not the date modified, created of the file itself. That kind of internal metadata Handbrake already does fine with anyways.
answered Apr 11 '18 at 0:14
EregosEregos
1
1
add a comment |
add a comment |
The program MyFFmpeg does this very well. In its options there is a choice to Keep Original Creation/Modified Date from Source File.
I had been looking for this because I have my home videos on a Plex server and the files are organized by the creation date, which is very useful if you want to see stuff from a particular year.
Unfortunately this is not a free option, currently costs 20 euros or about 21 US. They do have a trial for 10 uses before you have to buy a license. Surprised some of the free ffmpeg GUIs don't have or add this option.
add a comment |
The program MyFFmpeg does this very well. In its options there is a choice to Keep Original Creation/Modified Date from Source File.
I had been looking for this because I have my home videos on a Plex server and the files are organized by the creation date, which is very useful if you want to see stuff from a particular year.
Unfortunately this is not a free option, currently costs 20 euros or about 21 US. They do have a trial for 10 uses before you have to buy a license. Surprised some of the free ffmpeg GUIs don't have or add this option.
add a comment |
The program MyFFmpeg does this very well. In its options there is a choice to Keep Original Creation/Modified Date from Source File.
I had been looking for this because I have my home videos on a Plex server and the files are organized by the creation date, which is very useful if you want to see stuff from a particular year.
Unfortunately this is not a free option, currently costs 20 euros or about 21 US. They do have a trial for 10 uses before you have to buy a license. Surprised some of the free ffmpeg GUIs don't have or add this option.
The program MyFFmpeg does this very well. In its options there is a choice to Keep Original Creation/Modified Date from Source File.
I had been looking for this because I have my home videos on a Plex server and the files are organized by the creation date, which is very useful if you want to see stuff from a particular year.
Unfortunately this is not a free option, currently costs 20 euros or about 21 US. They do have a trial for 10 uses before you have to buy a license. Surprised some of the free ffmpeg GUIs don't have or add this option.
edited Jan 10 at 15:41
slhck
160k47444466
160k47444466
answered Jan 9 at 2:53
HoustonHouston
1
1
add a comment |
add a comment |
I try to maintain the creation date while I compress my incredibly large GoPro MP4 videos into H.264.
I found the program HandBrakeBatch. It's exactly what I need to compress over 1000 files in one go, while keeping the creation date (metadata).
Have not found any other programs that are able to do this. Tried with FFmpeg, HandBrake and Wonderful Video Converter, but no.
Note that HandBrakeBatch is no longer maintained: osomac.com/2013/08/08/handbrake-adds-real-batch-processing
– slhck
Jan 10 at 15:43
add a comment |
I try to maintain the creation date while I compress my incredibly large GoPro MP4 videos into H.264.
I found the program HandBrakeBatch. It's exactly what I need to compress over 1000 files in one go, while keeping the creation date (metadata).
Have not found any other programs that are able to do this. Tried with FFmpeg, HandBrake and Wonderful Video Converter, but no.
Note that HandBrakeBatch is no longer maintained: osomac.com/2013/08/08/handbrake-adds-real-batch-processing
– slhck
Jan 10 at 15:43
add a comment |
I try to maintain the creation date while I compress my incredibly large GoPro MP4 videos into H.264.
I found the program HandBrakeBatch. It's exactly what I need to compress over 1000 files in one go, while keeping the creation date (metadata).
Have not found any other programs that are able to do this. Tried with FFmpeg, HandBrake and Wonderful Video Converter, but no.
I try to maintain the creation date while I compress my incredibly large GoPro MP4 videos into H.264.
I found the program HandBrakeBatch. It's exactly what I need to compress over 1000 files in one go, while keeping the creation date (metadata).
Have not found any other programs that are able to do this. Tried with FFmpeg, HandBrake and Wonderful Video Converter, but no.
edited Jan 10 at 15:42
slhck
160k47444466
160k47444466
answered Sep 25 '18 at 7:06
JimJim
1
1
Note that HandBrakeBatch is no longer maintained: osomac.com/2013/08/08/handbrake-adds-real-batch-processing
– slhck
Jan 10 at 15:43
add a comment |
Note that HandBrakeBatch is no longer maintained: osomac.com/2013/08/08/handbrake-adds-real-batch-processing
– slhck
Jan 10 at 15:43
Note that HandBrakeBatch is no longer maintained: osomac.com/2013/08/08/handbrake-adds-real-batch-processing
– slhck
Jan 10 at 15:43
Note that HandBrakeBatch is no longer maintained: osomac.com/2013/08/08/handbrake-adds-real-batch-processing
– slhck
Jan 10 at 15:43
add a comment |
protected by Pimp Juice IT Jan 9 at 3:38
Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?
@slhck Yes I mean Creation Time. I use Lightroom to manage my videos and after compression, the Capture/Creation time becomes Modified Time.
– pixelfreak
Dec 23 '12 at 22:08