Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#1722 closed defect (fixed)

PGS subtitles vanish/disappear immediately in m2ts

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

Description

PGS subtitles vanish/disappear immediately after shown.. in m2ts files..

This is quite an urgent problems as none of the blurays with it, play subtitles well..
Its only an ffmpeg issue cause the same thing plays well on powerdvd, Total media theater, MPC-HC ,...
To test, you should use xbmcplayer or VLC player (as both are using ffmpeg) not something else

Sample file:
http://dl.dropbox.com/u/103661855/Sample%20of%20Subtitle%20Issue-.m2ts

Attachments (1)

patchpgssub.diff (6.8 KB ) - added by Carl Eugen Hoyos 12 years ago.

Download all attachments as: .zip

Change History (27)

comment:1 by Cigaes, 12 years ago

Component: FFmpegavformat
Priority: importantnormal
Reproduced by developer: set
Status: newopen
Version: unspecifiedgit-master

I am not sure I understand you correctly. You mean that:

  • xbmcplayer and VLC have the problem;
  • powerdvd, Total media theater, MPC-HC (not ffmpeg-based) do not have the problem;

is that it?

On the other hand, MPlayer, which is also ffmpeg-based, displays the subtitles correctly.

There are known problems with the PGS decoder, especially with timing.

comment:2 by skank, 12 years ago

I tried it with latest version of FFplay and same issue..

So for now:

Problems with xbmcplayer, vlcplayer, FFplay
No problems with: powerdvd, total media theater, mpc-hc (and standalone players like PCH or dune..)

Version 0, edited 12 years ago by skank (next)

comment:3 by DoomBot, 12 years ago

Same problem here the subtitles just flash on screen very fast and then their gone.

comment:4 by Carl Eugen Hoyos, 12 years ago

Keywords: pgssub added; pgs subtitle disappear removed

Complete, uncut console output missing.

Analysis of the problem can be found in ticket #598:
https://ffmpeg.org/trac/ffmpeg/ticket/598#comment:18

comment:5 by skank, 12 years ago

Hi cehoyos...
What do you mean analysis can be found there... thats a different bug no?
This problem is shown by third party players and even ffplay(only not with mplayer)
Will there come a fix for this problem in the future?
Thank you for your time !

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

in reply to:  5 comment:6 by Carl Eugen Hoyos, 12 years ago

Replying to skank:

What do you mean analysis can be found there... thats a different bug no?

It may be a different bug (I don't know) but since it manifests in exactly the same way - pgs subtitles only showing for one frame - I assume it is the same bug so I also assume the analysis (that may or may not be correct) applies.

Please add complete, uncut console output to make this a valid ticket.

comment:7 by DoomBot, 12 years ago

What command is needed for Complete, uncut console output,
and how do you do it?

comment:8 by Carl Eugen Hoyos, 12 years ago

Run "ffplay Sample\ of\ Subtitle\ Issue-.m2ts", quit (using "q") after the first subtitle was shown (shortly) and post whatever was printed on the console together with the command line.

comment:9 by skank, 12 years ago

ffplay version N-44264-g070b0e1 Copyright (c) 2003-2012 the FFmpeg developers
  built on Sep  7 2012 17:35:17 with gcc 4.7.1 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-pthreads --enable-runtime-cpudetect --enable-avisynth --enable-bzlib --enable-frei0r --enable-libass --enable-libcelt --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-libutvideo --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      51. 72.100 / 51. 72.100
  libavcodec     54. 55.100 / 54. 55.100
  libavformat    54. 25.105 / 54. 25.105
  libavdevice    54.  2.100 / 54.  2.100
  libavfilter     3. 16.100 /  3. 16.100
  libswscale      2.  1.101 /  2.  1.101
  libswresample   0. 15.100 /  0. 15.100
  libpostproc    52.  0.100 / 52.  0.100
Input #0, mpegts, from 'C:\Users\Gebruiker\Downloads\Sample of Subtitle Issue-.m2ts':
  Duration: 00:00:18.09, start: 610.186000, bitrate: 23282 kb/s
  Program 1
    Stream #0:0[0x1011]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc
    Stream #0:1[0x1100]: Audio: dts (DTS-HD MA) ([134][0][0][0] / 0x0086), 48000 Hz, 5.1(side), s16, 1536 kb/s
    Stream #0:2[0x1200]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
SDL_OpenAudio (6 channels): DirectSound CreateSoundBuffer: Invalid parameter
SDL_OpenAudio (4 channels): DirectSound CreateSoundBuffer: Invalid parameter
[h264 @ 046c0560] reference picture missing during reorder
[h264 @ 046c0560] Missing reference picture
[h264 @ 046c0560] reference picture missing during reorder
[h264 @ 046c0560] Missing reference picture
[h264 @ 046c0560] reference picture missing during reorder
[h264 @ 046c0560] Missing reference picture
[h264 @ 046c0560] reference picture missing during reorder449B f=0/0
[h264 @ 046c0560] Missing reference picture
 610.34 A-V:-1347371930.665 fd=   0 aq= 
Frame changed from size:0x0 to size:1920x1080
 615.01 A-V: -0.008 fd=  40 aq= 2818KB vq=12541KB sq=    0B f=0/0   f=0/0
Last edited 12 years ago by Carl Eugen Hoyos (previous) (diff)

comment:10 by skank, 12 years ago

Is that ok?

comment:11 by Cigaes, 12 years ago

Can you try this patch series:
http://ffmpeg.org/pipermail/ffmpeg-devel/2012-September/130738.html
and see if it fixes things for you in the following situations:

  • playback with ffplay;
  • transcoding to a different sub codec (dvdsub; -fix_sub_duration is required, and -s:s 1920x1080 also if the subtitles arrive too late);
  • hardcoding the subtitles on the video.

comment:12 by skank, 12 years ago

This is getting harder by the minute ;)
How do i download and apply this patch?
Then i can test playback with ffplay, that i can do
The other 2 points.. Are like chinees to me..
Not that im not willing to test this cause its really an annoying bug, but my knowdlegde stops herr.. Isnt it possible you or the devs test this or smth..
Thx for your time. I hope this will get fixed... In future release

comment:13 by DoomBot, 12 years ago

How do you even go about using a patch?
I would love to see if this patch even works.

comment:14 by Cigaes, 12 years ago

You need to build from source. Then you need to download the mails with the patches into a file or several. Once you have that, you use the git am command to apply them, and build the resulting sources.

The problem is getting the mails in a form that is not mangled by a mail archive system. I suggest you use a newsreader to connect to Gmane.

comment:15 by skank, 12 years ago

Im sorry but this is way out of my reach..
So WE actually have to fix a problem with YOUR product?
I thought this was a bug report site..

We did report it.. And although we would really want to fix it , this is way out of knowdledge...

in reply to:  15 comment:16 by Cigaes, 12 years ago

Replying to skank:

Im sorry but this is way out of my reach..

I am sorry to hear that.

So WE actually have to fix a problem with YOUR product?

FFmpeg is Free software, anyone can fix a bug and submit the fix for inclusion. And if you need something to be fixed, you must remember that the amount of support you are entitled to is directly related to how much you paid for the "product", i.e. nothing.

But no one is asking you to fix a bug. I was asking if a proposed fix actually solves your issues.

comment:17 by skank, 12 years ago

I understand ;) its not that i want to be rude its just that i want to get a fix for it (causr its been present for 2 years now...) and nobody seems to care (although i think its something important) or willing to test the patch if it fixes..
I will look further to see if someone is able to test the patch to see if it fixes the problem... Thank you...

by Carl Eugen Hoyos, 12 years ago

Attachment: patchpgssub.diff added

in reply to:  11 comment:18 by Carl Eugen Hoyos, 12 years ago

Replying to Cigaes:

Can you try this patch series:
http://ffmpeg.org/pipermail/ffmpeg-devel/2012-September/130738.html
and see if it fixes things for you in the following situations:

  • playback with ffplay;
  • transcoding to a different sub codec (dvdsub; -fix_sub_duration is required, and -s:s 1920x1080 also if the subtitles arrive too late);
  • hardcoding the subtitles on the video.

All three situations are fixed with your patchset (attached), both for the sample here in this ticket, and the sample from ticket #598 (that needs the CRC-check in pat_cb() disabled)!

comment:19 by skank, 12 years ago

Cehoyos, so with the patch, the subs dont disappear anymore? That would rock!
Will the patch be built in next release of mmpeg then?

comment:20 by DoomBot, 12 years ago

Awesome news! thank you cehoyos and Cigaes for this excellent patch.
Now we need a new ffmpeg released with this new patch.

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

comment:21 by skank, 12 years ago

Cehoyos,

This patch works for ffplay but we need it to be able to be used in xbmc.. Therefore we need that patchEd right into libffmpeg itself.. Could you do that for us please? Thanks again..

comment:22 by Cigaes, 12 years ago

I just applied the patches to the official git repository. They will probably be part of the 0.12 release.

As for fixing xbmc, I am afraid that is not possible here. The problem was that the ffmpeg libraries were not providing the correct time at the logical place, therefore, applications based on ffmpeg would seek the value elsewhere, incorrectly. The ffmpeg libraries now provide the correct time at the logical place, but applications will probably still be using the incorrect one.

You will need to file bug reports to the applications you want fixed. You can point the following patch as an example:
http://git.videolan.org/?p=ffmpeg.git;a=blobdiff;f=ffplay.c;h=1c9a1414ca8928047865999e475abc48246eae8c;hp=42f03b860b5c6ce8e281bf3a59dd33641fefbe1d;hb=2939e258f9d1fff89b3b68536beb931b54611585;hpb=6d8b32633e843962d84fc63875bda909d9a36f46

comment:23 by reimar, 12 years ago

However I don't really understand why MPlayer happened to work without those changes, it too just uses the packet PTS values directly...

in reply to:  23 comment:24 by Carl Eugen Hoyos, 12 years ago

Resolution: fixed
Status: openclosed

Replying to reimar:

However I don't really understand why MPlayer happened to work without those changes, it too just uses the packet PTS values directly...

I can confirm that it still worked for today's svn head with several different samples both before and after your commit.

comment:25 by reimar, 12 years ago

I know it works in MPlayer before and after, I am just annoyed that I can't figure out what the difference between MPlayer and ffplay is that made ffplay not work before...
Particularly since it means I don't have a test-case for implementing support for using sub->pts in MPlayer.

comment:26 by DoomBot, 12 years ago

Wow i can't believe how fast this all got resolved!

Thanks again Cigaes excellent work can't wait for 0.12 release.

Note: See TracTickets for help on using tickets.