> On Mar 27, 2020, at 11:38 AM, Ted Park <[email protected]> wrote:
>
>> 2) It strips a number of metadata tags (I counted about 13). I want to
>> remove the mjpeg stream without perturbing the rest of the file.
>
> This can be done, add -map_metadata 0 for the global file-level metadata and
> -map_metadata:s: 0:s: for stream-level metadata. As I’ll explain, you can’t
> remove the mjpeg stream, but you can copy everything else but the mjpeg
> stream. Add -map 0 to copy everything and then add -map -0:# (where # is the
> stream index of the cover image) to not copy it.
-map_metadata 0 doesn't help—the metadata is still stripped (some well-known
tags are preserved, but only a few). It appears ffmpeg is not willing to put
unrecognized tags in the output when copying from m4v to mov.
Here's the command line I used, FWIW:
ffmpeg -strict experimental -i video.m4v -map_metadata 0 -map 0 -map -0:4
-codec copy test.mov
>> 3) Testing on another file (also Apple-encoded and supported), the 'mov'
>> output chokes on another stream:
>>
>> Stream #0:4(eng): Data: bin_data (tx3g / 0x67337874), 0 kb/s
>> Metadata:
>> creation_time : 2016-07-15T19:12:05.000000Z
>> handler_name : Core Media Text
>
> This I am curious about, tx3g literally indicates mp4:17 text streams, with
> decoder name “mov_text”. Do you have a sample you can provide?
It's a copyrighted movie, but here's the relevant command line interaction (the
problematic stream is #0:4; if I exclude it, the command succeeds):
$ -> ffmpeg -i video.m4v -map 0 -codec copy test.mov
ffmpeg version 4.2.2 Copyright (c) 2000-2019 the FFmpeg developers
built with Apple clang version 11.0.0 (clang-1100.0.33.16)
configuration: --prefix=/usr/local/Cellar/ffmpeg/4.2.2 --enable-shared
--enable-pthreads --enable-version3 --enable-avresample --cc=clang
--host-cflags='-I/Library/Java/JavaVirtualMachines/adoptopenjdk-13.0.1.jdk/Contents/Home/include
-I/Library/Java/JavaVirtualMachines/adoptopenjdk-13.0.1.jdk/Contents/Home/include/darwin
-fno-stack-check' --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl
--enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus
--enable-librubberband --enable-libsnappy --enable-libtesseract
--enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx
--enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma
--enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass
--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
--enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox
--disable-libjack --disable-indev=jack
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
libpostproc 55. 5.100 / 55. 5.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f8625000800] stream 0, timescale not set
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.m4v':
Metadata:
major_brand : M4V
minor_version : 0
compatible_brands: M4V mp42isom
...
Stream #0:0(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo,
fltp, 126 kb/s (default)
Metadata:
creation_time : 2016-07-15T19:12:05.000000Z
handler_name : Core Media Audio
Stream #0:1(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661),
yuv420p(tv, smpte170m/smpte170m/bt709, progressive), 640x480 [SAR 4:3 DAR
16:9], 1432 kb/s, 23.98 fps, 23.98 tbr, 2997 tbn, 5994 tbc (default)
Metadata:
creation_time : 2016-07-15T19:12:05.000000Z
handler_name : Core Media Video
Stream #0:2(eng): Subtitle: mov_text (tx3g / 0x67337874), 853x72, 0 kb/s
(default)
Metadata:
rotate : 0
creation_time : 2016-07-15T19:12:05.000000Z
handler_name : Core Media Subtitle
Stream #0:3(eng): Subtitle: eia_608 (c608 / 0x38303663), 853x480, 0 kb/s
(default)
Metadata:
creation_time : 2016-07-15T19:12:05.000000Z
handler_name : Core Media Closed Caption
Stream #0:4(eng): Data: bin_data (tx3g / 0x67337874), 0 kb/s
Metadata:
creation_time : 2016-07-15T19:12:05.000000Z
handler_name : Core Media Text
Stream #0:5(und): Video: mjpeg (Baseline) (jpeg / 0x6765706A), yuvj444p(pc,
bt470bg/unknown/unknown, progressive), 640x360 [SAR 72:72 DAR 16:9], 8 kb/s,
SAR 65536:62805 DAR 1048576:565245, 0.0042 fps, 1 tbr, 1k tbn, 1k tbc (attached
pic) (timed thumbnails)
Metadata:
rotate : 0
creation_time : 2016-07-15T19:12:05.000000Z
handler_name : Core Media Video
Side data:
displaymatrix: rotation of -0.00 degrees
Stream #0:6(eng): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side),
fltp, 384 kb/s
Metadata:
creation_time : 2016-07-15T19:12:05.000000Z
handler_name : Core Media Audio
Side data:
audio service type: main
Stream #0:7(spa): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo,
fltp, 125 kb/s
Metadata:
creation_time : 2016-07-15T19:12:05.000000Z
handler_name : Core Media Audio
Stream #0:8: Video: mjpeg (Baseline), yuvj444p(pc,
bt470bg/unknown/unknown), 720x1080 [SAR 1:1 DAR 2:3], 90k tbr, 90k tbn, 90k tbc
(attached pic)
[mov @ 0x7f862480ba00] Tag tx3g incompatible with output codec id '100359'
([0][0][0][0])
Could not write header for output file #0 (incorrect codec parameters ?):
Invalid data found when processing input
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Stream #0:2 -> #0:2 (copy)
Stream #0:3 -> #0:3 (copy)
Stream #0:4 -> #0:4 (copy)
Stream #0:5 -> #0:5 (copy)
Stream #0:6 -> #0:6 (copy)
Stream #0:7 -> #0:7 (copy)
Stream #0:8 -> #0:8 (copy)
Last message repeated 1 times
> If by other suggestions you meant alternative tools, gpac, l-smash, mp4box
> are some tools that can work on ISO-family format files, if not in-place,
> piece by piece. If you have a Mac and are okay with a GUI solution, Subler is
> a very popular tool for apple-device-compatible-file editing.
I'll investigate some of these, thanks.
ffmpeg does seem pretty ubiquitous as a Swiss army knife kind of tool, so I'm
glad to have gotten more familiar with it, but something else may be better for
this particular problem.
_______________________________________________
ffmpeg-user mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".