Edit MP4 Metadata with exiftool - exiftool

I have an MP4 file with Title metadata:
exiftool movie.mp4
Which gives:
Audio Bits Per Sample : 16
Audio Sample Rate : 48000
Handler Type : Metadata
Handler Vendor ID : Apple
Title : Movie Title
I want to completely remove this Title metadata. I have tried overwriting the title:
exiftool -Title="" movie.mp4
exiftool -Title= movie.mp4
exiftool -Title="" -overwrite_original movie.mp4
The command takes awhile to execute, but exits with:
0 image files updated
1 image files unchanged
What am I doing incorrectly? How can I view what the exiftool error is? How can I remove the Title attribute? According to the man page, MP4 seems to be a supported file type.
Thanks so much for your help!

Since the time of the original question, exiftool, as of ver 11.39, has gained the ability to create/edit a larger range of MP4/MOV metadata tags (see Quicktime tags page). To remove the Title tag from a video the original commands that #James Taylor used will work:
exiftool -Title= movie.mp4
Or in batch with
exiftool -Title= /path/to/files/
These commands creates backup files. Add -overwrite_original to suppress the creation of backup files. Add -r to recurse into subdirectories.
You can also use ffmpeg with a command similar to this, based upon this StackOverflow answer
ffmpeg -i InputFile -c copy -metadata title= OutputFile
But as is, I believe this command will remove all metadata. I think that -map_metadata 0 needs to be added to the command to keep the remaining metadata, but unsure of where.

Related

Copy values from one XMP tag to another XMP tag

I have a lot of images (JPG) with some metadata.
I'm interested in these three tags, for example, from one of the images:
[XMP] FlightPitchDegree : 0.734793
[XMP] FlightRollDegree : -1.024403
[XMP] FlightYawDegree : 192.286436
I need to copy these values for each image to the next tags:
Xmp.Camera.Pitch
Xmp.Camera.Roll
Xmp.Camera.Yaw
Mostly for tag editing, I'm using ExifTool, but I can't find commands for copying values between tags inside one file.
I'll be very appreciative of any recommendation.
Best,
Andriy
To copy from one tag to another you would use the redirection feature of the -TagsFromFile option. Basically it would be
exiftool "-TARGETTAG<SOURCETAG" file.xmp
You have the names of the SourceTags (FlightPitchDegree/FlightRollDegree/FlightYawDegree), you just need to figure out the exiftool names of your target tags. I can find CameraPitch/CameraYaw/CameraRoll tags on the DJI Tags page, but those are not XMP tags. The only other place I can find tags with similar names are part of the XMP-Camera group, which are not built into exiftool and you would have to download the pix4d.config file and use the -Config option to include those definitions.
exiftool -config /path/to/pix4d.config "-XMP:Pitch< FlightPitchDegree" "-XMP:Yaw<FlightYawDegree" "-XMP:Roll< FlightRollDegree" file.xmp
The -config option must be the very first option in the command in order to load the definitions.

Does exiftool require the complete file for extracting metadata

This question is about extraction of metadata only.
Is it required for exiftool to get a complete file for propperly working?
Scenario:
I want to extract the metadata of a 20 GB video file. Do I need to provide exiftool with the complete file (via stdin), or is it enough to provide it with a certain amount of bytes.
Motivation:
I am programatically (golang) calling exiftool in a streaming context and want to have the extraction as fast as possible. Magic numbers for filetypes work with the first 33 bytes and I am wondering if that is possible with the exiftool metadata as well.
The answer depends upon the file and the location of the metadata within that file.
There are a couple of threads on the subject on the ExifTool forums (link 1, link 2) and Phil Harvey, the author, says that about half the time the in the case of MP4/MOV videos, the metadata is at the end of the file.
Using the -fast option might help. I've done some quick tests using cURL and a large image file (see the second to the last example under Piping Examples) and in that case cURL didn't download the whole image file, just enough to extra the metadata. It might be different with a video file though, as I haven't tested that situation.

Save geotagged images to new directory using exiftool

I am trying to use exiftool in command line.
By default exiftool saves geotagged image in the same directory where the original image is. Can I change this behavior and change the directory of geotagged image to new directory.
You want to look at the -o option. The second example under Writing Examples shows this option. In your case, it would be something like:
exiftool -GPSLatitude=0.000 -GPSLongitude=0.000 -GPSLatitudeRef=S -GPSLongitudeRef=W -o /path/to/New/GPSTaggedFiles/ /Source/Path/

Remove exiftool traces from file

If I set some tag with exiftool e.g.
exiftool UserComment="test" video.mp4
I can then remove it with
exiftool UserComment= video.mp4
However, exiftool sets an additional tag ExifToolVersion which I cannot delete with
exiftool -ExifToolVersion= video.mp4
because
Warning: Sorry, ExifToolVersion is not writable
How can I remove all traces of exiftool from the file? I need to keep other meta data tags untouched.
ExifToolVersion is not stored in the file. This is only information returned by ExifTool. Use the -G1 option to see the group name for each tag. Tags with a group name of "ExifTool" are generated internally. Other "ExifTool" tags are Error and Warning. For a complete list, see the Extra Tags documentation

Can we segment more than one movie file using mediafilesegmenter tool - HTTP Live Streaming

Is there any way to achieve segmenting from more than one movie file using mediafilesegmenter. I want to create one prog_index.m3u8 file from multiple movie files.
If mediafilesegmenter doesn't support, can anyone suggest alternate approach to achieve this.
Thanks in advance to all the viewers who takes time to look into this query .
Thanks
Sudheer
I couldn't find any help for segmenting more than one video file using mediafielsegmenter but found a solution to my issue.
As we know that mediafilesegmenter tool will generate a prog_index.m3u8 file by default after segmenting the movie file, here I'm creating a new index file with contents appended from prog_index.m3u8 and updating the new index file when a new movie file is segmented. This has solved my issue.
MediaFileSegmenter is not meant for combining more than one files. It's used for segmenting video files.
If you want to combine multiple files you can use ffmpeg. It's a very simple and efficient tool for performing various operations on video files.
From ffmpeg documentation,
Create a file mylist.txt with all the files you want to have concatenated in the following form:
file '/path/to/file1'
file '/path/to/file2'
file '/path/to/file3'
Note that these can be either relative or absolute paths. Then you can stream copy or re-encode your files:
ffmpeg -f concat -safe 0 -i mylist.txt -c copy output
The -safe 0 above is not required if the paths are relative.
you can find more on concatenation here.
Once you have combined the files. Segment them using mediafilesegmenter, you don't need to manually append index files within prog_index.m3u8.