2017-10-30 35 views
1

私のすべてのビデオファイル(m4v)にタグを付けるために私のMacでMetaZというプログラムを使用しました。私は今、.nfoファイルを必要とするKodiでこれらのm4vファイルを使用しようとしており、ムービーポスターなどのためにピクチャファイルを分割しています。すでにm4vファイルにある画像を抽出したいと思います。ffmpegを使用してm4vファイルから画像を抽出

私がffprobe -show_streamsを使用すると、index4がpngファイル(codec_name = png)であることがわかります。どのようにそれを抽出するのですか?私はffmpegがそれを行うことができると信じていますが、どうやって理解することはできません。

Brians-Mac-mini:PythonScript brianjhille$ ffprobe -show_streams badwords.m4v 
ffprobe version N-88046-g0cb8369-tessus Copyright (c) 2007-2017 the FFmpeg developers 
    built with Apple LLVM version 8.0.0 (clang-800.0.42.1) 
    configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay 
    libavutil  56. 0.100/56. 0.100 
    libavcodec  58. 0.100/58. 0.100 
    libavformat 58. 0.100/58. 0.100 
    libavdevice 58. 0.100/58. 0.100 
    libavfilter  7. 0.100/7. 0.100 
    libswscale  5. 0.100/5. 0.100 
    libswresample 3. 0.100/3. 0.100 
    libpostproc 55. 0.100/55. 0.100 
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fd67b002a00] stream 0, timescale not set 
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'badwords.m4v': 
    Metadata: 
    major_brand  : mp42 
    minor_version : 0 
    compatible_brands: mp42isomavc1 
    creation_time : 2014-10-20T13:01:06.000000Z 
    iTunEXTC  : mpaa|R|400| 
    title   : Bad Words 
    artist   : Jason Bateman, Kathryn Hahn, Allison Janney, Philip Baker Hall, Rohan Chand, Ben Falcone, Patricia Belcher, Beth Grant, Rachel Harris, Steve Witting, Greg Cromer 
    date   : 2013-09-06T11:00:00Z 
    track   : 0 
    disc   : 0 
    season_number : 0 
    episode_sort : 0 
    description  : A spelling bee loser sets out to exact revenge by finding a loophole and attempting to win as an adult. 
    synopsis  : A spelling bee loser sets out to exact revenge by finding a loophole and attempting to win as an adult. 
    encoder   : HandBrake 0.9.9 2013052900 
    hd_video  : 0 
    media_type  : 9 
    genre   : Comedy 
    iTunMOVI  : <?xml version="1.0" encoding="UTF-8"?> 
        : <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
        : <plist version="1.0"> 
        : <dict> 
        : <key>cast</key> 
        : <array> 
        :  <dict> 
        :   <key>name</key> 
        :   <string>Jason Bateman</string> 
        :  </dict> 
        :  <dict> 
        :   <key>name</key> 
        :   <string>Kathryn Hahn</string> 
        :  </dict> 
        :  <dict> 
        :   <key>name</key> 
        :   <string>Allison Janney</string> 
        :  </dict> 
        :  <dict> 
        :   <key>name</key> 
        :   <string>Philip Baker Hall</string> 
        :  </dict> 
        :  <dict> 
        :   <key>name</key> 
        :   <string>Rohan Chand</string> 
        :  </dict> 
        :  <dict> 
        :   <key>name</key> 
        :   <string>Ben Falcone</string> 
        :  </dict> 
        :  <dict> 
        :   <key>name</key> 
        :   <string>Patricia Belcher</string> 
        :  </dict> 
        :  <dict> 
        :   <key>name</key> 
        :   <string>Beth Grant</string> 
        :  </dict> 
        :  <dict> 
        :   <key>name</key> 
        :   <string>Rachel Harris</string> 
        :  </dict> 
        :  <dict> 
        :   <key>name</key> 
        :   <string>Steve Witting</string> 
        :  </dict> 
        :  <dict> 
        :   <key>name</key> 
        :   <string>Greg Cromer</string> 
        :  </dict> 
        : </array> 
        : </dict> 
        : </plist> 
        : 
    Duration: 01:29:02.84, start: 0.000000, bitrate: 1339 kb/s 
    Chapter #0:0: start 0.000000, end 348.214000 
    Metadata: 
     title   : Chapter 1 
    Chapter #0:1: start 348.214000, end 676.542000 
    Metadata: 
     title   : Chapter 2 
    Chapter #0:2: start 676.542000, end 860.058000 
    Metadata: 
     title   : Chapter 3 
    Chapter #0:3: start 860.058000, end 1171.836000 
    Metadata: 
     title   : Chapter 4 
    Chapter #0:4: start 1171.836000, end 1441.839000 
    Metadata: 
     title   : Chapter 5 
    Chapter #0:5: start 1441.839000, end 1632.129000 
    Metadata: 
     title   : Chapter 6 
    Chapter #0:6: start 1632.129000, end 1925.422000 
    Metadata: 
     title   : Chapter 7 
    Chapter #0:7: start 1925.422000, end 2167.030000 
    Metadata: 
     title   : Chapter 8 
    Chapter #0:8: start 2167.030000, end 2409.605000 
    Metadata: 
     title   : Chapter 9 
    Chapter #0:9: start 2409.605000, end 2748.276000 
    Metadata: 
     title   : Chapter 10 
    Chapter #0:10: start 2748.276000, end 2917.945000 
    Metadata: 
     title   : Chapter 11 
    Chapter #0:11: start 2917.945000, end 3309.502000 
    Metadata: 
     title   : Chapter 12 
    Chapter #0:12: start 3309.502000, end 3634.660000 
    Metadata: 
     title   : Chapter 13 
    Chapter #0:13: start 3634.660000, end 3942.434000 
    Metadata: 
     title   : Chapter 14 
    Chapter #0:14: start 3942.434000, end 4101.626000 
    Metadata: 
     title   : Chapter 15 
    Chapter #0:15: start 4101.626000, end 4336.193000 
    Metadata: 
     title   : Chapter 16 
    Chapter #0:16: start 4336.193000, end 4620.643000 
    Metadata: 
     title   : Chapter 17 
    Chapter #0:17: start 4620.643000, end 4873.729000 
    Metadata: 
     title   : Chapter 18 
    Chapter #0:18: start 4873.729000, end 5153.341000 
    Metadata: 
     title   : Chapter 19 
    Chapter #0:19: start 5153.341000, end 5342.796000 
    Metadata: 
     title   : Chapter 20 
    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1/0x31637661), yuv420p(tv, smpte170m/smpte170m/bt709), 720x356 [SAR 32:27 DAR 640:267], 716 kb/s, 23.98 fps, 59.94 tbr, 90k tbn, 180k tbc (default) 
    Metadata: 
     creation_time : 2014-10-20T13:01:06.000000Z 
     encoder   : JVT/AVC Coding 
    Stream #0:1(eng): Audio: aac (LC) (mp4a/0x6134706D), 48000 Hz, stereo, fltp, 159 kb/s (default) 
    Metadata: 
     creation_time : 2014-10-20T13:01:06.000000Z 
    Stream #0:2(eng): Audio: ac3 (ac-3/0x332D6361), 48000 Hz, 5.1(side), fltp, 448 kb/s 
    Metadata: 
     creation_time : 2014-10-20T13:01:06.000000Z 
    Side data: 
     audio service type: main 
    Stream #0:3(und): Data: bin_data (text/0x74786574) 
    Metadata: 
     creation_time : 2014-10-21T13:42:00.000000Z 
    Stream #0:4: Video: png, rgb24(pc), 1400x2100, 90k tbr, 90k tbn, 90k tbc 
Unsupported codec with id 100359 for input stream 3 
[STREAM] 
index=0 
codec_name=h264 
codec_long_name=H.264/AVC/MPEG-4 AVC/MPEG-4 part 10 
profile=Constrained Baseline 
codec_type=video 
codec_time_base=40071281/1921695000 
codec_tag_string=avc1 
codec_tag=0x31637661 
width=720 
height=356 
coded_width=720 
coded_height=356 
has_b_frames=0 
sample_aspect_ratio=32:27 
display_aspect_ratio=640:267 
pix_fmt=yuv420p 
level=30 
color_range=tv 
color_space=smpte170m 
color_transfer=bt709 
color_primaries=smpte170m 
chroma_location=left 
field_order=unknown 
timecode=N/A 
refs=1 
is_avc=true 
nal_length_size=4 
id=N/A 
r_frame_rate=60000/1001 
avg_frame_rate=960847500/40071281 
time_base=1/90000 
start_pts=0 
start_time=0.000000 
duration_ts=480855372 
duration=5342.837467 
bit_rate=716167 
max_bit_rate=N/A 
bits_per_raw_sample=8 
nb_frames=128113 
nb_read_frames=N/A 
nb_read_packets=N/A 
DISPOSITION:default=1 
DISPOSITION:dub=0 
DISPOSITION:original=0 
DISPOSITION:comment=0 
DISPOSITION:lyrics=0 
DISPOSITION:karaoke=0 
DISPOSITION:forced=0 
DISPOSITION:hearing_impaired=0 
DISPOSITION:visual_impaired=0 
DISPOSITION:clean_effects=0 
DISPOSITION:attached_pic=0 
DISPOSITION:timed_thumbnails=0 
TAG:creation_time=2014-10-20T13:01:06.000000Z 
TAG:language=und 
TAG:encoder=JVT/AVC Coding 
[/STREAM] 
[STREAM] 
index=1 
codec_name=aac 
codec_long_name=AAC (Advanced Audio Coding) 
profile=LC 
codec_type=audio 
codec_time_base=1/48000 
codec_tag_string=mp4a 
codec_tag=0x6134706d 
sample_fmt=fltp 
sample_rate=48000 
channels=2 
channel_layout=stereo 
bits_per_sample=0 
id=N/A 
r_frame_rate=0/0 
avg_frame_rate=0/0 
time_base=1/48000 
start_pts=0 
start_time=0.000000 
duration_ts=256454656 
duration=5342.805333 
bit_rate=159788 
max_bit_rate=321176 
bits_per_raw_sample=N/A 
nb_frames=250444 
nb_read_frames=N/A 
nb_read_packets=N/A 
DISPOSITION:default=1 
DISPOSITION:dub=0 
DISPOSITION:original=0 
DISPOSITION:comment=0 
DISPOSITION:lyrics=0 
DISPOSITION:karaoke=0 
DISPOSITION:forced=0 
DISPOSITION:hearing_impaired=0 
DISPOSITION:visual_impaired=0 
DISPOSITION:clean_effects=0 
DISPOSITION:attached_pic=0 
DISPOSITION:timed_thumbnails=0 
TAG:creation_time=2014-10-20T13:01:06.000000Z 
TAG:language=eng 
[/STREAM] 
[STREAM] 
index=2 
codec_name=ac3 
codec_long_name=ATSC A/52A (AC-3) 
profile=unknown 
codec_type=audio 
codec_time_base=1/48000 
codec_tag_string=ac-3 
codec_tag=0x332d6361 
sample_fmt=fltp 
sample_rate=48000 
channels=6 
channel_layout=5.1(side) 
bits_per_sample=0 
dmix_mode=-1 
ltrt_cmixlev=-1.000000 
ltrt_surmixlev=-1.000000 
loro_cmixlev=-1.000000 
loro_surmixlev=-1.000000 
id=N/A 
r_frame_rate=0/0 
avg_frame_rate=0/0 
time_base=1/48000 
start_pts=0 
start_time=0.000000 
duration_ts=256453632 
duration=5342.784000 
bit_rate=448000 
max_bit_rate=N/A 
bits_per_raw_sample=N/A 
nb_frames=166962 
nb_read_frames=N/A 
nb_read_packets=N/A 
DISPOSITION:default=0 
DISPOSITION:dub=0 
DISPOSITION:original=0 
DISPOSITION:comment=0 
DISPOSITION:lyrics=0 
DISPOSITION:karaoke=0 
DISPOSITION:forced=0 
DISPOSITION:hearing_impaired=0 
DISPOSITION:visual_impaired=0 
DISPOSITION:clean_effects=0 
DISPOSITION:attached_pic=0 
DISPOSITION:timed_thumbnails=0 
TAG:creation_time=2014-10-20T13:01:06.000000Z 
TAG:language=eng 
[SIDE_DATA] 
side_data_type=Audio Service Type 
[/SIDE_DATA] 
[/STREAM] 
[STREAM] 
index=3 
codec_name=bin_data 
codec_long_name=binary data 
profile=unknown 
codec_type=data 
codec_tag_string=text 
codec_tag=0x74786574 
id=N/A 
r_frame_rate=0/0 
avg_frame_rate=0/0 
time_base=1/1000 
start_pts=0 
start_time=0.000000 
duration_ts=5342837 
duration=5342.837000 
bit_rate=N/A 
max_bit_rate=N/A 
bits_per_raw_sample=N/A 
nb_frames=20 
nb_read_frames=N/A 
nb_read_packets=N/A 
DISPOSITION:default=0 
DISPOSITION:dub=0 
DISPOSITION:original=0 
DISPOSITION:comment=0 
DISPOSITION:lyrics=0 
DISPOSITION:karaoke=0 
DISPOSITION:forced=0 
DISPOSITION:hearing_impaired=0 
DISPOSITION:visual_impaired=0 
DISPOSITION:clean_effects=0 
DISPOSITION:attached_pic=0 
DISPOSITION:timed_thumbnails=0 
TAG:creation_time=2014-10-21T13:42:00.000000Z 
TAG:language=und 
[/STREAM] 
[STREAM] 
index=4 
codec_name=png 
codec_long_name=PNG (Portable Network Graphics) image 
profile=unknown 
codec_type=video 
codec_time_base=0/1 
codec_tag_string=[0][0][0][0] 
codec_tag=0x0000 
width=1400 
height=2100 
coded_width=1400 
coded_height=2100 
has_b_frames=0 
sample_aspect_ratio=0:1 
display_aspect_ratio=0:1 
pix_fmt=rgb24 
level=-99 
color_range=pc 
color_space=unknown 
color_transfer=unknown 
color_primaries=unknown 
chroma_location=unspecified 
field_order=unknown 
timecode=N/A 
refs=1 
id=N/A 
r_frame_rate=90000/1 
avg_frame_rate=0/0 
time_base=1/90000 
start_pts=0 
start_time=0.000000 
duration_ts=480855372 
duration=5342.837467 
bit_rate=N/A 
max_bit_rate=N/A 
bits_per_raw_sample=N/A 
nb_frames=N/A 
nb_read_frames=N/A 
nb_read_packets=N/A 
DISPOSITION:default=0 
DISPOSITION:dub=0 
DISPOSITION:original=0 
DISPOSITION:comment=0 
DISPOSITION:lyrics=0 
DISPOSITION:karaoke=0 
DISPOSITION:forced=0 
DISPOSITION:hearing_impaired=0 
DISPOSITION:visual_impaired=0 
DISPOSITION:clean_effects=0 
DISPOSITION:attached_pic=1 
DISPOSITION:timed_thumbnails=0 
[/STREAM] 

ありがとう:ここ

はffprobeから出力されます。ブライアン

+0

あなたがffprobeの出力を投稿したり、働いていたいくつかの例... – Harry

答えて

0

使用

ffmpeg -i badwords.m4v -c copy -map 0:4 -vframes 1 badwords-poster.png 

一般的なコマンドは次のようになり

ffmpeg -i in.m4v -c copy -map 0:v -map -0:V -vframes 1 video-poster.png 
+0

をアップロードしたい場合には答えるように容易になるだろう!ありがとうございました!質問、どのトラックに画像があるかの決定を自動化する方法があるかどうかは分かりますか?言い換えれば、この例では、ffprobeの出力を見ていたので、4番目のトラックであることがわかりました...どのトラックを使用する必要があるのか​​をPythonスクリプトで確認できますか?再度、感謝します! – Brian

+0

私の一般的なコマンドはそれを行います。最初のマップはすべてのビデオストリームを出力用に割り当て、2番目のマップはすべての通常のビデオストリームを「割り当て解除」し、サムネイル/ポスターストリームのみを残します。 – Mulvya

関連する問題