Tôi đang cố khắc phục một số video được tạo bằng iDevice. Các video có vòng xoay trong siêu dữ liệu chỉ được Apple hiểu và phần mềm của nó nhưng không có ai khác. Việc sửa lỗi này khá đơn giản, nhưng tôi cũng muốn giữ siêu dữ liệu khác trong các tệp như vị trí địa lý.ffmpeg không sao chép siêu dữ liệu tùy chỉnh
Tôi đã thử một vài phiên bản, tất cả đều có kết quả tương tự, ví dụ:
ffmpeg -i input.mov -vf vflip,hflip -map_metadata 0 -metadata:s:v:0 rotate=0 -acodec copy output.mp4
này nên làm việc, nó đã mang lại cho xem trước đúng của siêu dữ liệu:
ffmpeg version 1.1.2 Copyright (c) 2000-2013 the FFmpeg developers
built on Feb 8 2013 23:55:22 with Apple clang version 4.0 (tags/Apple/clang-421.0.60) (based on LLVM 3.1svn)
configuration: --prefix=/usr/local/Cellar/ffmpeg/1.1.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
libavutil 52. 13.100/52. 13.100
libavcodec 54. 86.100/54. 86.100
libavformat 54. 59.106/54. 59.106
libavdevice 54. 3.102/54. 3.102
libavfilter 3. 32.100/3. 32.100
libswscale 2. 1.103/2. 1.103
libswresample 0. 17.102/0. 17.102
libpostproc 52. 2.100/52. 2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '2013-02-17 00.39.36.mov':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
creation_time : 2013-02-16 23:39:25
model : iPhone 5
model-deu : iPhone 5
encoder : 6.1
encoder-deu : 6.1
date : 2013-02-17T00:39:25+0100
date-deu : 2013-02-17T00:39:25+0100
location : +48.2683+007.7205+172.710/
location-deu : +48.2683+007.7205+172.710/
make : Apple
make-deu : Apple
Duration: 00:00:09.67, start: 0.000000, bitrate: 16764 kb/s
Stream #0:0(und): Video: h264 (High) (avc1/0x31637661), yuv420p, 1920x1080, 16696 kb/s, 24 fps, 24 tbr, 600 tbn, 1200 tbc
Metadata:
rotate : 180
creation_time : 2013-02-16 23:39:25
handler_name : Core Media Data Handler
Stream #0:1(und): Audio: aac (mp4a/0x6134706D), 44100 Hz, mono, fltp, 61 kb/s
Metadata:
creation_time : 2013-02-16 23:39:25
handler_name : Core Media Data Handler
w:1920 h:1080 pixfmt:yuv420p tb:1/600 fr:24/1 sar:0/1 sws_param:flags=2
[libx264 @ 0x7fc248829a00] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
[libx264 @ 0x7fc248829a00] profile High, level 4.0
[libx264 @ 0x7fc248829a00] 264 - core 125 - H.264/MPEG-4 AVC codec - Copyleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'output.mp4':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
creation_time : 2013-02-16 23:39:25
model : iPhone 5
model-deu : iPhone 5
encoder-deu : 6.1
date : 2013-02-17T00:39:25+0100
date-deu : 2013-02-17T00:39:25+0100
location : +48.2683+007.7205+172.710/
location-deu : +48.2683+007.7205+172.710/
make : Apple
make-deu : Apple
encoder : Lavf54.59.106
Stream #0:0(und): Video: h264 ([33][0][0][0]/0x0021), yuv420p, 1920x1080, q=-1--1, 12288 tbn, 24 tbc
Metadata:
handler_name : Core Media Data Handler
creation_time : 2013-02-16 23:39:25
rotate : 0
Stream #0:1(und): Audio: aac ([64][0][0][0]/0x0040), 44100 Hz, mono, 61 kb/s
Metadata:
creation_time : 2013-02-16 23:39:25
handler_name : Core Media Data Handler
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> libx264)
Stream #0:1 -> #0:1 (copy)
Nhưng file kết quả chỉ giữ một số thẻ siêu dữ liệu sau:
ffmpeg -i output.mp4
hiển thị:
fmpeg version 1.1.2 Copyright (c) 2000-2013 the FFmpeg developers
built on Feb 8 2013 23:55:22 with Apple clang version 4.0 (tags/Apple/clang-421.0.60) (based on LLVM 3.1svn)
configuration: --prefix=/usr/local/Cellar/ffmpeg/1.1.2 --enable-shared --enable-pthreads - -enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
libavutil 52. 13.100/52. 13.100
libavcodec 54. 86.100/54. 86.100
libavformat 54. 59.106/54. 59.106
libavdevice 54. 3.102/54. 3.102
libavfilter 3. 32.100/3. 32.100
libswscale 2. 1.103/2. 1.103
libswresample 0. 17.102/0. 17.102
libpostproc 52. 2.100/52. 2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2mp41
creation_time : 2013-02-16 23:39:25
date : 2013-02-17T00:39:25+0100
encoder : Lavf54.59.106
Duration: 00:00:09.67, start: 0.000000, bitrate: 3286 kb/s
Stream #0:0(und): Video: mpeg4 (Simple Profile) (mp4v/0x7634706D), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 3219 kb/s, 24 fps, 24 tbr, 12288 tbn, 24 tbc
Metadata:
creation_time : 2013-02-16 23:39:25
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (mp4a/0x6134706D), 44100 Hz, mono, fltp, 61 kb/s
Metadata:
creation_time : 2013-02-16 23:39:25
handler_name : SoundHandler
Tôi cũng đã cố gắng để thêm một thẻ Tôi quan tâm đến bằng tay với
-metadata:g location=+48.2683+007.7205+172.710/
không có thay đổi trong kết quả.
Đầu ra dưới dạng .mov cũng không thay đổi bất kỳ thứ gì.
Có mẹo nào để thêm siêu dữ liệu không chuẩn không? Làm thế nào để tôi lấy lại vị trí trong đó?
Cảm ơn trước bất kỳ ai có thể cung cấp một số thông tin chi tiết về điều này.
Bạn tỉa giao diện điều khiển đầu ra ffmpeg mà cắt ra có khả năng thông tin hữu ích. – LordNeckbeard
Tôi đã thêm tất cả đầu ra ngay bây giờ, hy vọng nó giúp tìm ra vấn đề – e110c0