Opened 4 years ago

Closed 4 years ago

Last modified 4 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 cehoyos 4 years ago.

Download all attachments as: .zip

Change History (27)

comment:1 Changed 4 years ago by Cigaes

  • Component changed from FFmpeg to avformat
  • Priority changed from important to normal
  • Reproduced by developer set
  • Status changed from new to open
  • Version changed from unspecified to git-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 Changed 4 years ago by skank

Yup
I just 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..)

Its indeed timing problems i think, it shows up the subs but immediately disappear
Since FFplay has it too, i really think its a ffmpeg issue...

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

comment:3 Changed 4 years ago by DoomBot

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

comment:4 Changed 4 years ago by cehoyos

  • 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 follow-up: Changed 4 years ago by skank

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 4 years ago by skank (previous) (diff)

comment:6 in reply to: ↑ 5 Changed 4 years ago by cehoyos

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 Changed 4 years ago by DoomBot

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

comment:8 Changed 4 years ago by cehoyos

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 Changed 4 years ago by skank

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 4 years ago by cehoyos (previous) (diff)

comment:10 Changed 4 years ago by skank

Is that ok?

comment:11 follow-up: Changed 4 years ago by 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.

comment:12 Changed 4 years ago by skank

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 Changed 4 years ago by DoomBot

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

comment:14 Changed 4 years ago by Cigaes

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 follow-up: Changed 4 years ago by skank

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...

comment:16 in reply to: ↑ 15 Changed 4 years ago by Cigaes

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 Changed 4 years ago by skank

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...

Changed 4 years ago by cehoyos

comment:18 in reply to: ↑ 11 Changed 4 years ago by cehoyos

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 Changed 4 years ago by skank

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 Changed 4 years ago by DoomBot

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

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

comment:21 Changed 4 years ago by skank

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 Changed 4 years ago by Cigaes

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 follow-up: Changed 4 years ago by reimar

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

comment:24 in reply to: ↑ 23 Changed 4 years ago by cehoyos

  • Resolution set to fixed
  • Status changed from open to closed

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 Changed 4 years ago by reimar

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 Changed 4 years ago by DoomBot

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.