Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#3394 closed defect (fixed)

mp4 -> mkv produces broken file

Reported by: tessus Owned by:
Priority: important Component: avformat
Version: git-master Keywords: mkv regression
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:

I copy a video stream and convert an aac audio stream from an mp4 file to an mkv file. The resulting mkv file is broken. It doesn't play on HW players (e.g. WD TV Media box) and stops in VLC as well.

How to reproduce:

% ffmpeg -i inp.mp4 -i inp.srt -map 0:0 -vcodec copy -map 0:1 -acodec ac3 -b:a 384k -af volume=2 -map 1:0 -scodec copy -metadata:s:1 language=eng -metadata:s:2 language=eng -metadata title="Title here" "out.mkv"

ffmpeg version N-60689-g8309171-tessus Copyright (c) 2000-2014 the FFmpeg developers
  built on Feb 16 2014 19:49:23 with llvm-gcc 4.2.1 (LLVM build 2336.1.00)
  configuration: --prefix=/Users/tessus/data/ext/ffmpeg/sw --as=yasm --extra-version=tessus --disable-shared --enable-static --disable-ffplay --enable-gpl --enable-pthreads --enable-postproc --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-libspeex --enable-bzlib --enable-zlib --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libxavs --enable-version3 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvpx --enable-libgsm --enable-libopus --enable-libmodplug --enable-fontconfig --enable-libfreetype --enable-libass --enable-libbluray --enable-filters --enable-runtime-cpudetect
  libavutil      52. 64.100 / 52. 64.100
  libavcodec     55. 52.102 / 55. 52.102
  libavformat    55. 33.100 / 55. 33.100
  libavdevice    55.  9.101 / 55.  9.101
  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

The last good version I have on my disk is from Feb. 4th. The first bad version was around Feb. 7th. Since then the output files are broken.

I have uploaded 3 files to upload.ffmpeg.org (cut off after 4MB):

1) input file: mp4-mkv-input.mp4
2) good output file (674195c): mp4-mkv-good.mkv
3) bad output file (8309171): mp4-mkv-broken.mkv

I suspect that the mkv structure of the output file is garbled. Maybe you guys have tools to check the integrity of containers.
Since the video stream is copied, I can't believe that the stream is the problem.
I used several different input files - same result, so it's not the input file either.
ffmpeg 2.1.3 does not have the problem.

Maybe you have an idea what was changed after Feb 4th that would screw up the output file.

Change History (40)

comment:1 Changed 5 years ago by tessus

I was able to narrow it down:

The output file is not broken, when I copy video and audio stream.
However, it is broken, when I convert the audio. The target does not matter. I tried ac3 and mp3.

This brings me to the conclusion that the mkv container is fine, but that the aac decoder has a problem.

comment:2 Changed 5 years ago by cehoyos

Please provide your failing command line together with the complete, uncut console output to make this a valid ticket.

comment:3 Changed 5 years ago by tessus

I'm not quite sure I understand. ffmpeg does not abend. Here is the complete output:

ffmpeg -i 1.mp4 -i 1.srt -map 0:0 -vcodec copy -map 0:1 -acodec ac3 -b:a 384k -af volume=2 -map 1:0 -scodec copy -metadata:s:1 language=eng -metadata:s:2 language=eng -metadata title=test test.mkv
ffmpeg version N-60689-g8309171-tessus Copyright (c) 2000-2014 the FFmpeg developers
  built on Feb 16 2014 19:49:23 with llvm-gcc 4.2.1 (LLVM build 2336.1.00)
  configuration: --prefix=/Users/tessus/data/ext/ffmpeg/sw --as=yasm --extra-version=tessus --disable-shared --enable-static --disable-ffplay --enable-gpl --enable-pthreads --enable-postproc --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-libspeex --enable-bzlib --enable-zlib --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libxavs --enable-version3 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvpx --enable-libgsm --enable-libopus --enable-libmodplug --enable-fontconfig --enable-libfreetype --enable-libass --enable-libbluray --enable-filters --enable-runtime-cpudetect
  libavutil      52. 64.100 / 52. 64.100
  libavcodec     55. 52.102 / 55. 52.102
  libavformat    55. 33.100 / 55. 33.100
  libavdevice    55.  9.101 / 55.  9.101
  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 '1.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isomavc1
    creation_time   : 2014-02-09 20:22:13
  Duration: 01:41:11.96, start: 0.000000, bitrate: 2473 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 1962 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)
    Metadata:
      creation_time   : 2014-02-09 20:22:13
    Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 380 kb/s (default)
    Metadata:
      creation_time   : 2014-02-09 17:38:55
    Stream #0:2(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 124 kb/s (default)
    Metadata:
      creation_time   : 2014-02-09 17:54:44
Input #1, srt, from '1.srt':
  Duration: N/A, bitrate: N/A
    Stream #1:0: Subtitle: subrip
Output #0, matroska, to 'test.mkv':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isomavc1
    title           : test
    encoder         : Lavf55.33.100
    Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 1962 kb/s, 23.98 fps, 1k tbn, 24k tbc (default)
    Metadata:
      creation_time   : 2014-02-09 20:22:13
    Stream #0:1(eng): Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, 5.1, fltp, 384 kb/s (default)
    Metadata:
      creation_time   : 2014-02-09 17:38:55
    Stream #0:2(eng): Subtitle: subrip
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (aac -> ac3)
  Stream #1:0 -> #0:2 (copy)
Press [q] to stop, [?] for help
frame=145580 fps=606 q=-1.0 Lsize= 1741934kB time=01:41:11.96 bitrate=2350.1kbits/s
video:1454812kB audio:284624kB subtitle:57 data:0 global headers:0kB muxing overhead 0.140359%

Please note: It doesn't matter, if the subtitles are muxed in or not. The problem only occurs, if aac is converted to something else. I also tried the stereo audio stream. Same problem. Hope this helps.

comment:4 Changed 5 years ago by cehoyos

Could you confirm that you uploaded the right sample?

$ md5sum mp4-mkv-input.mp4
33a1b2787adb1b58bf5e0160234caffe  mp4-mkv-input.mp4
$ ffmpeg -i mp4-mkv-input.mp4
ffmpeg version N-60700-g07b4b0c Copyright (c) 2000-2014 the FFmpeg developers
  built on Feb 18 2014 09:15:18 with gcc 4.7 (SUSE Linux)
  configuration: --enable-gpl
  libavutil      52. 64.100 / 52. 64.100
  libavcodec     55. 52.102 / 55. 52.102
  libavformat    55. 33.100 / 55. 33.100
  libavdevice    55. 10.100 / 55. 10.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
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x2150100] error reading header: -1094995529
mp4-mkv-input.mp4: Invalid data found when processing input

comment:5 follow-up: Changed 5 years ago by tessus

I cut off the files I uploaded after 4MB, since the input file is 1,877,018,601 bytes. According to the bug report web site, I was supposed to do so. The output files are also about the same size.

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

Replying to tessus:

I cut off the files I uploaded after 4MB, since the input file is 1,877,018,601 bytes.

Please upload the complete file, there is no hard file size limit.

comment:7 Changed 5 years ago by tessus

I get the following message: 421 Too many connections (1) from this IP
Which is weird, since I have only one connection open.

comment:8 Changed 5 years ago by tessus

I'm uploading from a different IP. The name of the file is mp4-mkv-input-big.mp4

md5sum mp4-mkv-input-big.mp4
18158efb3f3def0c94670608f4bf7692  mp4-mkv-input-big.mp4

Should be completely uploaded within the next 15 minutes.

comment:9 in reply to: ↑ description Changed 5 years ago by cehoyos

Replying to tessus:

I copy a video stream and convert an aac audio stream from an mp4 file to an mkv file. The resulting mkv file is broken. It doesn't play on HW players (e.g. WD TV Media box) and stops in VLC as well.

I tested the following command line:

$ ffmpeg -i mp4-mkv-input-big.mp4 -vcodec copy -acodec ac3 out.mkv

The output file plays fine here with vlc for two minutes, when does it stop for you?

comment:10 Changed 5 years ago by cehoyos

  • Component changed from undetermined to avformat
  • Keywords mkv regression added
  • Priority changed from normal to important

comment:11 Changed 5 years ago by tessus

It stops almost right away. I open it in VLC, the position bar jumps back and forth for about 1-2 seconds and then the video stops. The HW player does not do or play anything.

comment:12 Changed 5 years ago by cehoyos

Which version of vlc are you testing? On which operating system?
(This is assuming you want to report the problem with vlc to reproduce in which case I will do the regression tests if I can reproduce the problem. The alternative is of course that you do the git bisect yourself and tell us the version that broke the output files for your hardware decoder.)

comment:13 Changed 5 years ago by tessus

I'm using VLC Version 2.1.3 Rincewind (Intel 64bit) on MacOSX 10.6.8.

I doubt that it is an issue with VLC, because the HW player does not play the file either.
Also, when I use an ffmpeg git version from Feb 4th, VLC plays it just fine.

It takes quite a while to compile ffmpeg on my machine, so doing a bisect would take forever for me. Unfortunately I'm rather busy at the moment, so I would have to wait until I have more time. That's fine too, I just don't have any idea when this will be.

comment:14 Changed 5 years ago by tessus

I'm terribly sorry, I made a mistake with my earlier testing. I mentioned earlier that it doesn't matter, if the subtitles are muxed in or not.

This is actually not true. I only have the problem when the subtitles are muxed in via -scodec copy. I'm truly sorry, if I wasted your time.

Well, it is still a problem, just not the one I opened it for.

comment:15 Changed 5 years ago by tessus

I've uploaded the subtitle file as mp4-mkv-input-big.srt, although you could take any .srt file I guess.

comment:16 Changed 5 years ago by cehoyos

I tested the following:

$ ffmpeg -i mp4-mkv-input-big.mp4 -i mp4-mkv-input-big.srt -scodec copy -vcodec copy -acodec ac3 ~/out.mkv
ffmpeg version N-60710-g61d5970 Copyright (c) 2000-2014 the FFmpeg developers
  built on Feb 18 2014 10:42:46 with gcc 4.7 (SUSE Linux)
  configuration: --enable-gpl
  libavutil      52. 64.100 / 52. 64.100
  libavcodec     55. 52.102 / 55. 52.102
  libavformat    55. 33.100 / 55. 33.100
  libavdevice    55. 10.100 / 55. 10.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 'mp4-mkv-input-big.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isomavc1
    creation_time   : 2014-02-09 20:22:13
  Duration: 01:41:11.96, start: 0.000000, bitrate: 2473 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 1962 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)
    Metadata:
      creation_time   : 2014-02-09 20:22:13
    Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 380 kb/s (default)
    Metadata:
      creation_time   : 2014-02-09 17:38:55
    Stream #0:2(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 124 kb/s (default)
    Metadata:
      creation_time   : 2014-02-09 17:54:44
Input #1, srt, from 'mp4-mkv-input-big.srt':
  Duration: N/A, bitrate: N/A
    Stream #1:0: Subtitle: subrip
Output #0, matroska, to '/home/cehoyos/out.mkv':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isomavc1
    encoder         : Lavf55.33.100
    Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 1962 kb/s, 23.98 fps, 1k tbn, 24k tbc (default)
    Metadata:
      creation_time   : 2014-02-09 20:22:13
    Stream #0:1(eng): Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, 5.1, fltp, 448 kb/s (default)
    Metadata:
      creation_time   : 2014-02-09 17:38:55
    Stream #0:2: Subtitle: subrip
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (aac -> ac3)
  Stream #1:0 -> #0:2 (copy)
Press [q] to stop, [?] for help
frame=145580 fps=2897 q=-1.0 Lsize= 1789364kB time=01:41:11.96 bitrate=2414.1kbits/s
video:1454812kB audio:332061kB subtitle:57 data:0 global headers:0kB muxing overhead 0.136231%
$ md5sum out.mkv
35ea0dd5238a3fdbf7d169850bbfc30b  out.mkv

The output file plays fine in vlc for five minutes showing correct subtitles.

I can reproduce the problem with the file mp4-mkv-broken.mkv you uploaded, please find out what is different about the command I am testing.

Unrelated:
Please remove the following options from your configure line, they have no effect:
--as=yasm --disable-shared --enable-static --enable-pthreads --enable-postproc --enable-bzlib --enable-zlib --enable-filters --enable-runtime-cpudetect

comment:17 follow-ups: Changed 5 years ago by tessus

Just ran the following:

$ ffmpeg -i mp4-mkv-input-big.mp4 -i mp4-mkv-input-big.srt -scodec copy -vcodec copy -acodec ac3 out.mkv
ffmpeg version N-60712-g5f4219b-tessus Copyright (c) 2000-2014 the FFmpeg developers
  built on Feb 17 2014 20:55:39 with llvm-gcc 4.2.1 (LLVM build 2336.1.00)
  configuration: --prefix=/Users/tessus/data/ext/ffmpeg/sw --as=yasm --extra-version=tessus --disable-shared --enable-static --disable-ffplay --enable-gpl --enable-pthreads --enable-postproc --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-libspeex --enable-bzlib --enable-zlib --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libxavs --enable-version3 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvpx --enable-libgsm --enable-libopus --enable-libmodplug --enable-fontconfig --enable-libfreetype --enable-libass --enable-libbluray --enable-filters --enable-runtime-cpudetect
  libavutil      52. 64.100 / 52. 64.100
  libavcodec     55. 52.102 / 55. 52.102
  libavformat    55. 33.100 / 55. 33.100
  libavdevice    55. 10.100 / 55. 10.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 'mp4-mkv-input-big.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isomavc1
    creation_time   : 2014-02-09 20:22:13
  Duration: 01:41:11.96, start: 0.000000, bitrate: 2473 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 1962 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)
    Metadata:
      creation_time   : 2014-02-09 20:22:13
    Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 380 kb/s (default)
    Metadata:
      creation_time   : 2014-02-09 17:38:55
    Stream #0:2(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 124 kb/s (default)
    Metadata:
      creation_time   : 2014-02-09 17:54:44
Input #1, srt, from 'mp4-mkv-input-big.srt':
  Duration: N/A, bitrate: N/A
    Stream #1:0: Subtitle: subrip
Output #0, matroska, to 'out.mkv':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isomavc1
    encoder         : Lavf55.33.100
    Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 1962 kb/s, 23.98 fps, 1k tbn, 24k tbc (default)
    Metadata:
      creation_time   : 2014-02-09 20:22:13
    Stream #0:1(eng): Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, 5.1, fltp, 448 kb/s (default)
    Metadata:
      creation_time   : 2014-02-09 17:38:55
    Stream #0:2: Subtitle: subrip
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (aac -> ac3)
  Stream #1:0 -> #0:2 (copy)
Press [q] to stop, [?] for help
frame=145580 fps=793 q=-1.0 Lsize= 1789371kB time=01:41:11.96 bitrate=2414.1kbits/s
video:1454812kB audio:332061kB subtitle:57 data:0 global headers:0kB muxing overhead 0.136624%
$ md5sum out.mkv
35de7829297090a333718ed8dd100e17  out.mkv

After that I ran the same command as above with the additional option -t 300 and uploaded the file for you as 3394_out_300.mkv. It might be easier for you to check the binary.

Wrt the config options: I create a static binary, so wouldn't I need --enable-static?
Why don't they have any effect?

comment:18 in reply to: ↑ 17 ; follow-up: Changed 5 years ago by cehoyos

Replying to tessus:

Wrt the config options: I create a static binary, so wouldn't I need --enable-static?

No, --enable-static is unrelated to building static binaries.

Why don't they have any effect?

They are all set by default (and even if they would not work, for example because you don't have the necessary bz2 libraries, they would not fail).

comment:19 in reply to: ↑ 17 ; follow-up: Changed 5 years ago by cehoyos

Replying to tessus:

  built on Feb 17 2014 20:55:39 with llvm-gcc 4.2.1 (LLVM build 2336.1.00)

(Isn't this a broken compiler?)

$ md5sum out.mkv
35de7829297090a333718ed8dd100e17  out.mkv

This is unexpected, when using the same FFmpeg versions with the same configure options, identical output files are expected.

comment:20 in reply to: ↑ 18 ; follow-up: Changed 5 years ago by tessus

No, I don't think that it is a broken compiler. I've been using it for years now and never had any issues.

comment:21 in reply to: ↑ 20 ; follow-up: Changed 5 years ago by cehoyos

Replying to tessus:

No, I don't think that it is a broken compiler. I've been using it for years now and never had any issues.

See #353 but this is not necessarily related, I just wanted to convince you to also test clang. And please use a saner configure line (preferably ./configure --cc=clang && make) for the tests.

comment:22 in reply to: ↑ 19 Changed 5 years ago by cehoyos

Replying to cehoyos:

$ md5sum out.mkv
35de7829297090a333718ed8dd100e17  out.mkv

This is unexpected

Sorry, there are float codecs involved, this is expected.

comment:23 in reply to: ↑ 17 ; follow-up: Changed 5 years ago by cehoyos

Replying to tessus:

Wrt the config options: I create a static binary

Looking at your configure line, you are not creating a static binary.
But why would that make sense on OS X? Isn't there a set of compatible system libraries installed on every possible target system?

comment:24 in reply to: ↑ 21 Changed 5 years ago by tessus

Replying to cehoyos:

I just wanted to convince you to also test clang. And please use a saner configure line (preferably ./configure --cc=clang && make) for the tests.

Ok, I'll try building with clang.

comment:25 in reply to: ↑ 23 ; follow-up: Changed 5 years ago by tessus

Replying to cehoyos:

Looking at your configure line, you are not creating a static binary.
But why would that make sense on OS X? Isn't there a set of compatible system libraries installed on every possible target system?

Yes, they are static binaries. You can grab them at http://evermeet.cx/ffmpeg/snapshots/

comment:26 in reply to: ↑ 25 Changed 5 years ago by cehoyos

Replying to tessus:

Replying to cehoyos:

Looking at your configure line, you are not creating a static binary.
But why would that make sense on OS X? Isn't there a set of compatible system libraries installed on every possible target system?

Yes, they are static binaries. You can grab them at http://evermeet.cx/ffmpeg/snapshots/

I don't think so:

$ otool -L ffmpeg
ffmpeg:
        /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.11)

comment:27 follow-up: Changed 5 years ago by tessus

On MacOSX this is considered static, because those 2 libraries are only available as dylibs, therefore can't be linked statically.

But these 2 libs are available on all MacOSX versions. If I didn't compile it the way I do with the options I had, I would have about 35 libs in the otool output (which sre not standard).

comment:28 in reply to: ↑ 27 Changed 5 years ago by cehoyos

Replying to tessus:

On MacOSX this is considered static, because those 2 libraries are only available as dylibs, therefore can't be linked statically.

Then what you provide are not static binaries.

But these 2 libs are available on all MacOSX versions.

That is why - imo - static binaries are not needed for OS X.
(Two people are providing them for Linux iirc.)

comment:29 Changed 5 years ago by tessus

That is why I said that they are considered static on MacOSX. Technically they are not, but since there is not static version of libSystem.B.dylib, there are no static binaries on MacOSX, because all binaries require this lib.
So the term static on MacOSX means that nothing else is required to run this executable.
So this is as close as you can get on MacOSX.
But 'all-dependent-libraries-to-run-on-MacOSX-are-included' binary is a tongue twister and that's why people adapted the term static for binaries that only show system libs in the otool output.

So my binary has all the libs included in the binary to run it on all MacOSX version > 10.6.8. (e.g. libbluray, libopus, and about 20 more).
It doesn't make any sense to compile it on a system that has Homebrew or Macports installed where the binary links to files which are only available on my box and do not exist on a standard MacOSX machine.
The first thing they get is a library missing error when they try to run it.

But this has nothing to do with the ticket, I just wanted to explain what people consider static on MacOSX. I'm not saying that it is technically correct.

Last edited 5 years ago by tessus (previous) (diff)

comment:30 Changed 5 years ago by cehoyos

Where you able to test with saner compiler and configure line?

comment:31 Changed 5 years ago by tessus

Oh, my update on this apparently didn't go through.

Yes, I used ./configure --cc=clang && make, but no change. Same problem.

comment:32 Changed 5 years ago by cehoyos

Assuming there is a bug that can be fixed in FFmpeg, I don't think anybody can do anything about it as long as you don't run a regression test with git bisect to find the change introducing the problem.

comment:33 Changed 5 years ago by tessus

This will take a while, maybe next weekend I can work on it.

comment:34 Changed 5 years ago by tessus

Last good commit was 6a4cc50. Commit 3adb5f8 is already bad.

git log:

*   3adb5f8 | 2014-02-05 03:19:22 +0100 | Merge commit 'd9ae1031f5edbd25c8526b4cb51aba66d3bee931'
|\
| * d9ae103 | 2014-02-04 22:01:42 +0100 | lavf: improve handling of sparse streams when muxing
* |   6a4cc50 | 2014-02-05 02:47:46 +0100 | Merge commit '4c3e1956ee35fdcc5ffdb28782050164b4623c0b'

(Tried to build d9ae103 as well, but no ffmpeg binary is built by make.)

comment:35 Changed 5 years ago by Cigaes

Can you try Git HEAD again please? A problem raised by this commit was fixed very recently, it could be the same issue.

comment:36 Changed 5 years ago by tessus

I've started compiling, before I sent the message. :-)

comment:37 Changed 5 years ago by tessus

Yes, git HEAD (9aa59a9) works fine. Awesome. What was the commit that fixed it?

comment:38 Changed 5 years ago by Cigaes

Probably that:

commit d089e9a4d125269bbdc6e9e16456cd3f3a76baf8
Merge: c427b2b 299a568
Author: Michael Niedermayer <michaelni@gmx.at>
Date:   2014-02-20 16:29:09 +0100

    Merge remote-tracking branch 'cigaes/master'
    
    * cigaes/master:
      ffmpeg: make reading packets from thread blocking.
    
    Merged-by: Michael Niedermayer <michaelni@gmx.at>

commit 299a56879d2d790ac0c40d09af18e7f03471de9e
Author: Nicolas George <george@nsup.org>
Date:   2013-10-25 10:58:14 +0200

    ffmpeg: make reading packets from thread blocking.
    
    If a packet is not ready on the input selected by ffmpeg,
    it will read from another input instead. If that happens
    repeatedly, frames will accumulate somewhere later in the
    processing to ensure streams synchronization. It can happen
    in particular when reading from a slow medium or an
    expensive lavfi filter graph.
    
    Make reading from normal demuxers on non-streamed data and
    from the lavfi pseudo-device blocking to avoid that.
    
    Should fix trac ticket #3079.

comment:39 Changed 5 years ago by tessus

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

Thanks for the info, mate.

Shall I close the ticket, or will you? I'm not sure what the procedure is, maybe you still have to add something to the ticket before closing it.

comment:40 Changed 5 years ago by tessus

oops. it seems I closed it anyway.

Note: See TracTickets for help on using tickets.