ffmpeg 코덱을 알 수 없는 자막 추출

ffmpeg 코덱을 알 수 없는 자막 추출

저는 자동차 비디오 레코더로 생성된 파일에서 이미지와 GPS 좌표를 추출하는 프로그램을 작성하고 있습니다. 많은 모델에서 비디오와 GPS라는 두 개의 별도 파일을 생성하지만 전부는 아니지만 일부 레코더는 GPS에 대한 정보(좌표)를 비디오 파일 자막에 기록합니다. 그래서 비디오 파일에서 자막을 추출하는 문제에 직면했습니다. 그러한 명령을 사용하여

d:\test\ffmpeg -i "d:\test\example_1.MOV" -an -vn -c:s copy -f rawvideo  d:\test\sub.txt

"example_1.MOV" 파일에서 자막을 얻었지만 다른 파일 "example_2.MOV"에서는 "출력 파일 #0에 스트림이 포함되어 있지 않습니다."라는 메시지가 표시됩니다. 전체 로그는 다음과 같습니다.

    d:\test\ffmpeg -i "d:\test\example_2.MOV"  -an -vn -codec:s copy -f rawvideo d:\test\sub2.txt
ffmpeg version N-56575-g21f6ff3 Copyright (c) 2000-2013 the FFmpeg developers
  built on Sep 22 2013 18:02:01 with gcc 4.7.3 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp
e --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --ena
ble-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-l
ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libsp
eex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aa
cenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavp
ack --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 46.100 / 52. 46.100
  libavcodec     55. 33.100 / 55. 33.100
  libavformat    55. 18.102 / 55. 18.102
  libavdevice    55.  3.100 / 55.  3.100
  libavfilter     3. 87.100 /  3. 87.100
  libswscale      2.  5.100 /  2.  5.100
  libswresample   0. 17.103 /  0. 17.103
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'd:\test\example_2.MOV':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    creation_time   : 2014-03-30 16:05:10
    comment         : RELLA A7L
    comment-pra     : RELLA A7L
  Duration: 00:02:34.72, start: 0.033367, bitrate: 9039 kb/s
    Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuvj420p(pc), 1280
x720 [SAR 1:1 DAR 16:9], 9014 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (de
fault)
    Metadata:
      creation_time   : 2014-03-30 16:05:10
      handler_name    : Ambarella AVC
    Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 12
8 kb/s (default)
    Metadata:
      creation_time   : 2014-03-30 16:05:10
      handler_name    : Ambarella AAC
    Stream #0:2(eng): Data: none (RVMI / 0x494D5652), 0 kb/s
    Metadata:
      handler_name    :  GPS and G-Sensor
Output #0, rawvideo, to 'd:\test\sub2.txt':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    comment-pra     : RELLA A7L
    comment         : RELLA A7L
Output file #0 does not contain any stream

나는 이 파일에 자막이 있다는 것을 정확히 알고 있으므로 명령을 사용하여 이 파일에 어떤 스트림이 포함되어 있는지 알아내려고 노력했습니다.

d:\Test\ffprobe -show_streams -i "d:\test\example_2.MOV" 

나 그런 정보 얻었어

d:\test\ffprobe -show_streams -i "d:\test\example_2.
MOV"
ffprobe version N-64836-gce385c8 Copyright (c) 2007-2014 the FFmpeg developers
  built on Jul 20 2014 23:42:59 with gcc 4.8.3 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --
enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-lib
modplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrw
b --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinge
r --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --en
able-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis
 --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-
libx265 --enable-libxavs --enable-libxvid --enable-decklink --enable-zlib
  libavutil      52. 92.101 / 52. 92.101
  libavcodec     55. 69.100 / 55. 69.100
  libavformat    55. 48.101 / 55. 48.101
  libavdevice    55. 13.102 / 55. 13.102
  libavfilter     4. 11.102 /  4. 11.102
  libswscale      2.  6.100 /  2.  6.100
  libswresample   0. 19.100 /  0. 19.100
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'd:\test\example_2.MOV':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    creation_time   : 2014-03-30 16:05:10
    comment         : RELLA A7L
    comment-pra     : RELLA A7L
  Duration: 00:02:34.72, start: 0.033367, bitrate: 9039 kb/s
    Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuvj420p(pc), 1280
x720 [SAR 1:1 DAR 16:9], 9014 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (de
fault)
    Metadata:
      creation_time   : 2014-03-30 16:05:10
      handler_name    : Ambarella AVC
      encoder         : Ambarella AVC encoder
    Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 12
8 kb/s (default)
    Metadata:
      creation_time   : 2014-03-30 16:05:10
      handler_name    : Ambarella AAC
    Stream #0:2(eng): Data: none (RVMI / 0x494D5652), 0 kb/s
    Metadata:
      handler_name    :  GPS and G-Sensor
Unsupported codec with id 0 for input stream 2
[STREAM]
index=0
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
profile=Main
codec_type=video
codec_time_base=1001/60000
codec_tag_string=avc1
codec_tag=0x31637661
width=1280
height=720
has_b_frames=0
sample_aspect_ratio=1:1
display_aspect_ratio=16:9
pix_fmt=yuvj420p
level=31
color_range=pc
color_space=unknown
timecode=N/A
id=N/A
r_frame_rate=30000/1001
avg_frame_rate=30000/1001
time_base=1/30000
start_pts=-1001
start_time=-0.033367
duration_ts=4638634
duration=154.621133
bit_rate=9014524
max_bit_rate=N/A
nb_frames=4634
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
TAG:creation_time=2014-03-30 16:05:10
TAG:language=eng
TAG:handler_name=Ambarella AVC
TAG:encoder=Ambarella AVC encoder
[/STREAM]
[STREAM]
index=1
codec_name=aac
codec_long_name=AAC (Advanced Audio Coding)
profile=unknown
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=7421952
duration=154.624000
bit_rate=128000
max_bit_rate=N/A
nb_frames=7248
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
TAG:creation_time=2014-03-30 16:05:10
TAG:language=eng
TAG:handler_name=Ambarella AAC
[/STREAM]
[STREAM]
index=2
codec_name=unknown
codec_long_name=unknown
profile=unknown
codec_type=data
codec_time_base=0/1
codec_tag_string=RVMI
codec_tag=0x494d5652
id=N/A
r_frame_rate=0/0
avg_frame_rate=0/0
time_base=1/50
start_pts=0
start_time=0.000000
duration_ts=7736
duration=154.720000
bit_rate=255
max_bit_rate=N/A
nb_frames=309
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
TAG:language=eng
TAG:handler_name= GPS and G-Sensor
[/STREAM]

따라서 ffmpeg는 이 파일에서 자막을 추출하는 것을 원하지 않습니다. 비디오에서 자막을 추출하는 방법에 대해 제안해 주시면 기쁩니다.

관련 정보