Opened 5 years ago

Closed 4 years ago

Last modified 4 years ago

#3655 closed defect (fixed)

splitting a file with -f segment options causes all per stream metadata to be lost

Reported by: duggaraju Owned by:
Priority: normal Component: undetermined
Version: git-master Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Summary of the bug:
when splitting a video using -f segment the resultant output looses all the per stream metadata.
How to reproduce:
ffmpeg -i anyvideo.mp4 -c copy -metadata:s:v rotate=90 output.mp4
ffmpeg -i output.mp4 -c copy -map 0 -f segment output%d.mp4
ffprobe -show_streams -i output0.mp4

the segmented output no longer as the "rotate=90" metadata. it is gone. So if you have videos taken by cell with rotation metadata, it is lost after segmenting.
Patches should be submitted to the ffmpeg-devel mailing list and not this bug tracker.

Attachments (1)

r.mp4 (1.3 MB) - added by duggaraju 5 years ago.

Download all attachments as: .zip

Change History (5)

comment:1 Changed 5 years ago by cehoyos

Please provide your command line together with the complete, uncut console output.

Changed 5 years ago by duggaraju

comment:2 Changed 5 years ago by duggaraju

ffmpeg -i r.mp4 -map 0 -c copy -f segment output%d.mp4
ffmpeg version N-60386-g9c978f2 Copyright (c) 2000-2014 the FFmpeg developers

built on Feb 5 2014 22:08:32 with gcc 4.8.2 (GCC)
configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
libavutil 52. 63.100 / 52. 63.100
libavcodec 55. 49.101 / 55. 49.101
libavformat 55. 30.100 / 55. 30.100
libavdevice 55. 7.100 / 55. 7.100
libavfilter 4. 1.102 / 4. 1.102
libswscale 2. 5.101 / 2. 5.101
libswresample 0. 17.104 / 0. 17.104
libpostproc 52. 3.100 / 52. 3.100

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'r.mp4':

Metadata:

major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
title : BBC Motion Gallery
artist : BBC Motion Gallery
encoder : Lavf55.30.100
comment : http://www.bbcmotiongallery.com/
copyright : ©2005 BBC

Duration: 00:00:03.54, start: 0.000000, bitrate: 3142 kb/s

Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 3045 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc (default)
Metadata:

rotate : 90
handler_name : VideoHandler?

Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 127 kb/s (default)
Metadata:

handler_name : SoundHandler?

Output #0, segment, to 'output%d.mp4':

Metadata:

major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
title : BBC Motion Gallery
artist : BBC Motion Gallery
copyright : ©2005 BBC
comment : http://www.bbcmotiongallery.com/
encoder : Lavf55.30.100
Stream #0:0(eng): Video: h264 (avc1 / 0x31637661), yuv420p, 1920x1080, q=2-31, 3045 kb/s, 24 fps, 90k tbn, 24 tbc (default)
Metadata:

rotate : 90
handler_name : VideoHandler?

Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, 127 kb/s (default)
Metadata:

handler_name : SoundHandler?

Stream mapping:

Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)

Press [q] to stop, ? for help
frame= 84 fps=0.0 q=-1.0 Lsize=N/A time=00:00:03.52 bitrate=N/A

video:1301kB audio:55kB subtitle:0 data:0 global headers:0kB muxing overhead -100.001584%

ffprobe -show_streams -i output0.mp4
[STREAM]
index=0
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
profile=High
codec_type=video
codec_time_base=1/48
codec_tag_string=avc1
codec_tag=0x31637661
width=1920
height=1080
has_b_frames=2
sample_aspect_ratio=0:1
display_aspect_ratio=0:1
pix_fmt=yuv420p
level=40
timecode=N/A
id=N/A
r_frame_rate=24/1
avg_frame_rate=24/1
time_base=1/12288
start_pts=1020
start_time=0.083008
duration_ts=38912
duration=3.166667
bit_rate=2653013
nb_frames=76
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:language=und
TAG:handler_name=VideoHandler
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=2400
start_time=0.050000
duration_ts=150528
duration=3.136000
bit_rate=129798
nb_frames=147
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:language=und
TAG:handler_name=SoundHandler
STREAM

Notice that the rotation metadata is lost after segmenting.

comment:3 Changed 4 years ago by michael

  • Resolution set to worksforme
  • Status changed from new to closed

I see a "TAG:rotate=90" in the ffprobe output, if i run the commands here, so i assume this has been fixed

comment:4 Changed 4 years ago by cehoyos

  • Reproduced by developer set
  • Resolution changed from worksforme to fixed
  • Version changed from unspecified to git-master

Fixed since FFmpeg 2.4

Note: See TracTickets for help on using tickets.