Opened 12 years ago

Closed 12 years ago

#2138 closed enhancement (fixed)

this video is not segmented correct

Reported by: mpapp Owned by:
Priority: normal Component: avformat
Version: git-master Keywords: segment
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: yes

Description

Summary of the bug:
How to reproduce:

Try this command, this should produce many segments but it does not.
It just makes one.
./ffmpeg -i 'http://1.dlteh.net/Music/Album/Alicia%20Keys%20-%20Girl%20On%20Fire%20320/06.%20Girl%20On%20Fire%20(Inferno%20Version)%20(Feat.%20Nicki%20Minaj).mp3' -codec copy -map 0 -f segment -segment_list 8ff5aa7e2f86849db599b1791eaaaef669514e95_playlist.m3u8 -segment_list_flags +live -segment_time 10 8ff5aa7e2f86849db599b1791eaaaef669514e95_%03d.mkv

Patches should be submitted to the ffmpeg-devel mailing list and not this bug tracker.

Change History (11)

comment:1 by mpapp, 12 years ago

Version: unspecifiedgit-master

comment:2 by Carl Eugen Hoyos, 12 years ago

Is the problem only reproducible with network input or also if you use a file?

To make this a valid ticket, please add your command line together with complete, uncut console output.

comment:3 by mpapp, 12 years ago

I can reproduce with the file.

comment:4 by mpapp, 12 years ago

root@video-dev:~/ffmpeg/ffmpeg# ./ffmpeg -i 'http://1.dlteh.net/Music/Album/Alicia%20Keys%20-%20Girl%20On%20Fire%20320/06.%20Girl%20On%20Fire%20(Inferno%20Version)%20(Feat.%20Nicki%20Minaj).mp3' -codec copy -map 0 -f segment -segment_list 8ff5aa7e2f86849db599b1791eaaaef669514e95_playlist.m3u8 -segment_list_flags +live -segment_time 10 8ff5aa7e2f86849db599b1791eaaaef669514e95_%03d.mp4
ffmpeg version git-2013-01-10-5b69c07 Copyright (c) 2000-2013 the FFmpeg developers
  built on Jan  9 2013 19:00:56 with gcc 4.4.3 (Ubuntu 4.4.3-4ubuntu5)
  configuration: --enable-gpl --enable-version3 --disable-pthreads --enable-runtime-cpudetect --enable-bzlib --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libopenjpeg --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvo-aacenc --enable-libvorbis --enable-libx264 --enable-zlib
  libavutil      52. 13.100 / 52. 13.100
  libavcodec     54. 86.100 / 54. 86.100
  libavformat    54. 59.107 / 54. 59.107
  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
[mp3 @ 0x29a8f60] Warning: not compiled with thread support, using thread emulation
[mjpeg @ 0x29b0040] Warning: not compiled with thread support, using thread emulation
[mp3 @ 0x29a3b00] max_analyze_duration 5000000 reached at 5015510
Input #0, mp3, from 'http://1.dlteh.net/Music/Album/Alicia%20Keys%20-%20Girl%20On%20Fire%20320/06.%20Girl%20On%20Fire%20(Inferno%20Version)%20(Feat.%20Nicki%20Minaj).mp3':
  Metadata:
    artist          : Girl On Fire :: Teh-Music.Com ::
    album           : Alicia Keys :: Teh-Music.Com ::
    genre           : :: Teh-Music.Com ::
    date            : 2012
  Duration: 00:04:30.76, start: 0.000000, bitrate: 240 kb/s
    Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 320 kb/s
    Stream #0:1: Video: mjpeg, yuvj420p, 600x600 [SAR 96:96 DAR 1:1], 90k tbr, 90k tbn, 90k tbc
    Metadata:
      title           :
      comment         : Cover (front)
Output #0, segment, to '8ff5aa7e2f86849db599b1791eaaaef669514e95_%03d.mp4':
  Metadata:
    artist          : Girl On Fire :: Teh-Music.Com ::
    album           : Alicia Keys :: Teh-Music.Com ::
    genre           : :: Teh-Music.Com ::
    date            : 2012
    encoder         : Lavf54.59.107
    Stream #0:0: Audio: mp3, 44100 Hz, stereo, 320 kb/s
    Stream #0:1: Video: mjpeg, yuvj420p, 600x600 [SAR 96:96 DAR 1:1], q=2-31, 90k tbn, 90k tbc
    Metadata:
      title           :
      comment         : Cover (front)
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=    1 fps=0.0 q=-1.0 Lsize=N/A time=00:04:30.75 bitrate=N/A
video:68kB audio:7882kB subtitle:0 global headers:0kB muxing overhead -100.000270%
root@video-dev:~/ffmpeg/ffmpeg#

Last edited 12 years ago by mpapp (previous) (diff)

comment:5 by Stefano Sabatini, 12 years ago

Analyzed by developer: set
Component: undeterminedavformat
Keywords: segment added
Status: newopen

Hi,

this is expected since the segment will use by default the video as reference stream.
As a workaround, you can use reference_stream a to force audio as reference. I'm not sure if we should change the default to ignore video streams which are attachments, comments are welcome.

comment:6 by mpapp, 12 years ago

There is video. Why is it not cut into X s pieces if it is a reference?

As a end user, I expect when I use segment, the output should be cut into X s pieces.

It did not happen.
What is complicated about it?

Last edited 12 years ago by mpapp (previous) (diff)

in reply to:  6 comment:7 by Stefano Sabatini, 12 years ago

Replying to mpapp:

There is video. Why is it not cut into X s pieces if it is a reference?

As a end user, I expect when I use segment, the output should be cut into X s pieces.

It did not happen.
What is complicated about it?

Because you are splitting assuming the video stream as a reference. If the video stream has only one key frame, you get only one segment. There are several workarounds, but no magic solution.

comment:8 by mpapp, 12 years ago

I guess there could be a double reference mode.
In which ,both stream could be watched. Whichever changes most that one should be used as a reference for that segment.

I guess the problem is if I use sound as a reference, and there is no sound or it does not change, I will bump into the same phenomena, do not you think?

in reply to:  8 comment:9 by Stefano Sabatini, 12 years ago

Replying to mpapp:

I guess there could be a double reference mode.

In which ,both stream could be watched.

No idea what you mean.

Whichever changes most that one should be used as a reference for that segment.

This in not well defined. Also you break video segmenting if you use audio as reference for an input with audio and video, for a normal video which comprises more than one keyframe (like in your case).

I guess the problem is if I use sound as a reference, and there is no sound or it does not change, I will bump into the same phenomena, do not you think?

You can script things (e.g. with ffprobe), see what streams your input contains and change the -reference_stream value accordingly. Alternatively, I could change the default so that in case the video is an "attached picture" it is not used as a reference.

Last edited 12 years ago by Stefano Sabatini (previous) (diff)

comment:10 by mpapp, 12 years ago

Yes, I can use script.
It would make sense too not to use video if it is an attached picture.

in reply to:  10 comment:11 by Stefano Sabatini, 12 years ago

Reproduced by developer: set
Resolution: fixed
Status: openclosed
Type: defectenhancement

Replying to mpapp:

Yes, I can use script.
It would make sense too not to use video if it is an attached picture.

Should be fixed in:

commit d00df260ca3341e5cacdd53fb08c42b05fb1d442
Author: Stefano Sabatini <stefasab@gmail.com>
Date:   Wed Jan 16 20:10:12 2013 +0100

    lavf/segment: do not auto-select a video stream with attached_pic disposition
    
    In particular, fix trac ticket #2138.
Note: See TracTickets for help on using tickets.