FFmpeg를 사용하여 미디어 메타 데이터 검색 및 저장
미디어 파일의 메타 데이터를 읽은 다음 해당 메타 데이터를 text / xml 파일에 저장하여 나중에 데이터베이스에 해당 데이터를 삽입 할 수 있도록합니다. ffmpeg를 사용하고 싶습니다.
MediaInfo에서도 동일한 것이 가능합니까 ?? MediaInfo를 사용하여 개별 트랙에 대한 메타 데이터를 얻을 수 있지만 자동화하고 싶습니다. 새 미디어 파일이 발견 될 때마다 메타 데이터를 읽고 txt / xml 파일에 저장합니다.
또는이를 위해 사용할 수있는 다른 도구 / 유틸리티 / API가 있습니까?
-f ffmetadata
다음과 같은 옵션을 사용하여 글로벌 메타 데이터를 텍스트 파일에 저장할 수 있습니다 .
ffmpeg -i in.mp4 -f ffmetadata in.txt
비디오 및 오디오 스트림의 메타 데이터가 필요한 경우 (예 : 글로벌 메타 데이터에 생성 시간이 포함되지 않은 경우) 다음을 사용하십시오.
ffmpeg -i in.mp4 -c copy -map_metadata 0 -map_metadata:s:v 0:s:v -map_metadata:s:a 0:s:a -f ffmetadata in.txt
자세한 내용 은 ffmpeg 문서의 메타 데이터 섹션을 참조하십시오 .
파일에서 메타 데이터를 복원하려면 https://stackoverflow.com/a/50580239/2235831을 참조 하십시오 .
ffmpeg보다 더 많은 출력을 제공하는 exiftool을 사용하는 것을 선호합니다. 예를 들어 (iPhone의 파일) :
exiftool IMG_0014.MOV >a.txt
출력은
ExifTool Version Number : 8.60
File Name : IMG_0014.MOV
Directory : .
File Size : 19 MB
File Modification Date/Time : 2013:07:19 12:03:22-10:00
File Permissions : rw-r--r--
File Type : MOV
MIME Type : video/quicktime
Major Brand : Apple QuickTime (.MOV/QT)
Minor Version : 0.0.0
Compatible Brands : qt
Movie Data Size : 19979709
Movie Header Version : 0
Modify Date : 2013:07:19 22:03:21
Time Scale : 600
Duration : 7.27 s
Preferred Rate : 1
Preferred Volume : 100.00%
Preview Time : 0 s
Preview Duration : 0 s
Poster Time : 0 s
Selection Time : 0 s
Selection Duration : 0 s
Current Time : 0 s
Next Track ID : 3
Track Header Version : 0
Track Create Date : 2013:07:19 22:03:13
Track Modify Date : 2013:07:19 22:03:21
Track ID : 1
Track Duration : 7.27 s
Track Layer : 0
Track Volume : 0.00%
Image Width : 1920
Image Height : 1080
Graphics Mode : ditherCopy
Op Color : 32768 32768 32768
Compressor ID : avc1
Source Image Width : 1920
Source Image Height : 1080
X Resolution : 72
Y Resolution : 72
Compressor Name : H.264
Bit Depth : 24
Video Frame Rate : 27.011
Camera Identifier : Back
Frame Readout Time : 28512 microseconds
Matrix Structure : 1 0 0 0 1 0 0 0 1
Media Header Version : 0
Media Create Date : 2013:07:19 22:03:13
Media Modify Date : 2013:07:19 22:03:21
Media Time Scale : 44100
Media Duration : 7.31 s
Media Language Code : und
Balance : 0
Handler Class : Data Handler
Handler Vendor ID : Apple
Handler Description : Core Media Data Handler
Audio Channels : 1
Audio Bits Per Sample : 16
Audio Sample Rate : 44100
Audio Format : chan
Model : iPhone 4S
Software Version : 6.1.3
Create Date : 2013:07:20 08:03:13+10:00
Make : Apple
Handler Type : Metadata Tags
Make (und-AU) : Apple
Creation Date (und-AU) : 2013:07:20 08:03:13+10:00
Software (und-AU) : 6.1.3
Model (und-AU) : iPhone 4S
Avg Bitrate : 22 Mbps
Image Size : 1920x1080
Rotation : 90
ffmpeg를 사용하는 동안
ffmpeg -i IMG_0014.MOV -f ffmetadata metadata.txt
출력은
;FFMETADATA1
major_brand=qt
minor_version=0
compatible_brands=qt
date-eng=2013-07-20T08:03:13+1000
encoder=6.1.3
encoder-eng=6.1.3
date=2013-07-20T08:03:13+1000
멀티미디어 파일에 대한 정보를 수집 하기 위해 ffprobe
(와 함께 제공되는 ffmpeg
)를 사용할 수 있습니다 . 멀티미디어 파일의 전체 내용에 대한 정보는
ffprobe -show_streams -show_format DV06xx.avi
비디오 파일의 각 단일 프레임에 대한 정보는
ffprobe -show_frames DV06xx.avi
그러나 ffprobe
내가 가장 좋아하는 도구 인 Mediainfo 만큼 많은 정보를 검색하지 않습니다 . 예를 들어 'ffprobe'는 비디오의 첫 번째 프레임 (맨 페이지에서 달리 주장하고 있음) 또는 녹화 날짜의 시간 코드를 표시하지 않습니다.
If you run mediainfo
on the command line, you can even request output in XML format:
mediainfo --OUTPUT=XML DV06xx.avi
In my example the output is:
<?xml version="1.0" encoding="UTF-8"?>
<Mediainfo version="0.7.63">
<File>
<track type="General">
<Complete_name>DV06xx.avi</Complete_name>
<Format>AVI</Format>
<Format_Info>Audio Video Interleave</Format_Info>
<Commercial_name>DVCPRO</Commercial_name>
<Format_profile>OpenDML</Format_profile>
<File_size>13.3 GiB</File_size>
<Duration>1h 2mn</Duration>
<Overall_bit_rate_mode>Constant</Overall_bit_rate_mode>
<Overall_bit_rate>30.5 Mbps</Overall_bit_rate>
<Recorded_date>2004-03-28 15:42:35.000</Recorded_date>
</track>
<track type="Video">
<ID>0</ID>
<Format>DV</Format>
<Commercial_name>DVCPRO</Commercial_name>
<Codec_ID>dvsd</Codec_ID>
<Codec_ID_Hint>Sony</Codec_ID_Hint>
<Duration>1h 2mn</Duration>
<Bit_rate_mode>Constant</Bit_rate_mode>
<Bit_rate>24.4 Mbps</Bit_rate>
<Encoded_bit_rate>28.8 Mbps</Encoded_bit_rate>
<Width>720 pixels</Width>
<Height>576 pixels</Height>
<Display_aspect_ratio>4:3</Display_aspect_ratio>
<Frame_rate_mode>Constant</Frame_rate_mode>
<Frame_rate>25.000 fps</Frame_rate>
<Standard>PAL</Standard>
<Color_space>YUV</Color_space>
<Chroma_subsampling>4:2:0</Chroma_subsampling>
<Bit_depth>8 bits</Bit_depth>
<Scan_type>Interlaced</Scan_type>
<Scan_order>Bottom Field First</Scan_order>
<Compression_mode>Lossy</Compression_mode>
<Bits__Pixel_Frame_>2.357</Bits__Pixel_Frame_>
<Time_code_of_first_frame>00:00:01:10</Time_code_of_first_frame>
<Time_code_source>Subcode time code</Time_code_source>
<Stream_size>12.6 GiB (94%)</Stream_size>
<Encoding_settings>ae mode=full automatic / wb mode=automatic / white balance= / fcm=manual focus</Encoding_settings>
</track>
<track type="Audio">
<ID>1</ID>
<Format>PCM</Format>
<Format_settings__Endianness>Little</Format_settings__Endianness>
<Format_settings__Sign>Signed</Format_settings__Sign>
<Codec_ID>1</Codec_ID>
<Duration>1h 2mn</Duration>
<Bit_rate_mode>Constant</Bit_rate_mode>
<Bit_rate>1 536 Kbps</Bit_rate>
<Channel_s_>2 channels</Channel_s_>
<Sampling_rate>48.0 KHz</Sampling_rate>
<Bit_depth>16 bits</Bit_depth>
<Stream_size>688 MiB (5%)</Stream_size>
<Alignment>Aligned on interleaves</Alignment>
<Interleave__duration>40 ms (1.00 video frame)</Interleave__duration>
<Interleave__preload_duration>40 ms</Interleave__preload_duration>
</track>
</File>
</Mediainfo>
Adding the optional parameter -f
will produce even more detailed information.
There's also atomicparsley for MPEG-4 files.
You can set the metadata on video, below mention set album_artist
ffmpeg -i source.mp4 -metadata album_artist='stack developer' -y -r 1 -acodec copy -vcodec copy destination.mp4
And retreive the meta tag as:
ffmpeg -i destination.mp4
Use this on command line .
참고URL : https://stackoverflow.com/questions/9464617/retrieving-and-saving-media-metadata-using-ffmpeg
'IT Share you' 카테고리의 다른 글
솔루션 구성이지만 VS2010 도구 모음의 플랫폼이 아님 (0) | 2020.11.30 |
---|---|
off_t 유형의 완전한 정의는 어디에서 찾을 수 있습니까? (0) | 2020.11.30 |
Python을 사용하여 Selenium Chrome 드라이버에 옵션을 전달하려면 어떻게해야합니까? (0) | 2020.11.30 |
파이썬 요청 requests.exceptions.SSLError : [Errno 8] _ssl.c : 504 : EOF가 프로토콜 위반으로 발생했습니다. (0) | 2020.11.30 |
빌드가 성공했지만 Netbeans 7.2에“Unable to resolve identifier”가 표시됨 (0) | 2020.11.30 |