15
8
I am trying to convert an AVI file to an MP4 file. The video stream is an XVID whereas the audio stream is MP3.
The problem is that the resulting MP4 file is not playable in QuickTime Player on a Mac. It plays on VLC. While it's not a deal-breaker, I would like to know how to result such issues.
The command and it's output is as follows:
$ ffmpeg -i 103.avi -codec copy -f mp4 103.mp4
ffmpeg version N-60163-g78a9f18 Copyright (c) 2000-2014 the FFmpeg developers
built on Jan 25 2014 14:03:47 with Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
configuration:
libavutil 52. 63.100 / 52. 63.100
libavcodec 55. 49.100 / 55. 49.100
libavformat 55. 26.100 / 55. 26.100
libavdevice 55. 5.102 / 55. 5.102
libavfilter 4. 1.101 / 4. 1.101
libswscale 2. 5.101 / 2. 5.101
libswresample 0. 17.104 / 0. 17.104
Input #0, avi, from '103.avi':
Metadata:
encoder : Lavf55.26.100
Duration: 00:49:36.43, start: 0.000000, bitrate: 986 kb/s
Stream #0:0: Video: mpeg4 (Advanced Simple Profile) (XVID / 0x44495658), yuv420p, 512x368 [SAR 1:1 DAR 32:23], 23.98 tbr, 23.98 tbn, 23.98 tbc
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, s16p, 121 kb/s
Output #0, mp4, to '103.mp4':
Metadata:
encoder : Lavf55.26.100
Stream #0:0: Video: mpeg4 ( [0][0][0] / 0x0020), yuv420p, 512x368 [SAR 1:1 DAR 32:23], q=2-31, 11988 tbn, 23.98 tbc
Stream #0:1: Audio: mp3 (i[0][0][0] / 0x0069), 48000 Hz, stereo, 121 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[mp4 @ 0x7fe5ca01fa00] pts has no value
Last message repeated 1555 times
[mp4 @ 0x7fe5ca01fa00] pts has no value9kB time=00:01:17.70 bitrate=1458.0kbits/s
Last message repeated 1041 times
[mp4 @ 0x7fe5ca01fa00] pts has no value49kB time=00:02:08.42 bitrate=1661.6kbits/s
Last message repeated 1906 times
[mp4 @ 0x7fe5ca01fa00] pts has no value53kB time=00:03:40.39 bitrate=1537.1kbits/s
Last message repeated 2136 times
[mp4 @ 0x7fe5ca01fa00] pts has no value93kB time=00:05:35.80 bitrate=1307.4kbits/s
Last message repeated 3519 times
[mp4 @ 0x7fe5ca01fa00] pts has no value32kB time=00:08:32.18 bitrate=1150.5kbits/s
Last message repeated 2813 times
[mp4 @ 0x7fe5ca01fa00] pts has no value88kB time=00:11:18.01 bitrate=1090.9kbits/s
Last message repeated 3057 times
[mp4 @ 0x7fe5ca01fa00] pts has no value39kB time=00:14:00.42 bitrate=1028.7kbits/s
Last message repeated 3731 times
[mp4 @ 0x7fe5ca01fa00] pts has no value11kB time=00:16:57.72 bitrate= 991.0kbits/s
Last message repeated 2658 times
[mp4 @ 0x7fe5ca01fa00] pts has no value76kB time=00:19:25.70 bitrate= 978.1kbits/s
Last message repeated 2167 times
[mp4 @ 0x7fe5ca01fa00] pts has no value70kB time=00:21:17.11 bitrate= 990.8kbits/s
Last message repeated 3663 times
[mp4 @ 0x7fe5ca01fa00] pts has no value20kB time=00:24:42.06 bitrate= 938.1kbits/s
Last message repeated 2335 times
[mp4 @ 0x7fe5ca01fa00] pts has no value79kB time=00:26:53.90 bitrate= 950.6kbits/s
Last message repeated 4153 times
[mp4 @ 0x7fe5ca01fa00] pts has no value06kB time=00:30:59.94 bitrate= 895.4kbits/s
Last message repeated 3168 times
[mp4 @ 0x7fe5ca01fa00] pts has no value87kB time=00:33:35.43 bitrate= 888.5kbits/s
Last message repeated 1565 times
[mp4 @ 0x7fe5ca01fa00] pts has no value02kB time=00:34:56.47 bitrate= 914.0kbits/s
Last message repeated 2792 times
[mp4 @ 0x7fe5ca01fa00] pts has no value10kB time=00:37:34.42 bitrate= 909.6kbits/s
Last message repeated 2503 times
[mp4 @ 0x7fe5ca01fa00] pts has no value49kB time=00:39:48.76 bitrate= 916.2kbits/s
Last message repeated 1714 times
[mp4 @ 0x7fe5ca01fa00] pts has no value70kB time=00:41:16.64 bitrate= 928.7kbits/s
Last message repeated 2060 times
[mp4 @ 0x7fe5ca01fa00] pts has no value79kB time=00:43:04.79 bitrate= 935.2kbits/s
Last message repeated 1349 times
[mp4 @ 0x7fe5ca01fa00] pts has no value46kB time=00:44:06.57 bitrate= 951.6kbits/s
Last message repeated 2354 times
[mp4 @ 0x7fe5ca01fa00] pts has no value67kB time=00:45:56.33 bitrate= 967.9kbits/s
Last message repeated 2668 times
[mp4 @ 0x7fe5ca01fa00] pts has no value50kB time=00:48:14.72 bitrate= 964.9kbits/s
Last message repeated 1655 times
frame=71363 fps=5738 q=-1.0 Lsize= 355528kB time=00:49:36.43 bitrate= 978.5kbits/s
video:309630kB audio:44196kB subtitle:0 global headers:0kB muxing overhead 0.481011%
If I then copy the mp4 again, I get the following results:
$ ffmpeg -i 103.mp4 -codec copy -f mp4 103-new.mp4
ffmpeg version N-60163-g78a9f18 Copyright (c) 2000-2014 the FFmpeg developers
built on Jan 25 2014 14:03:47 with Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
configuration:
libavutil 52. 63.100 / 52. 63.100
libavcodec 55. 49.100 / 55. 49.100
libavformat 55. 26.100 / 55. 26.100
libavdevice 55. 5.102 / 55. 5.102
libavfilter 4. 1.101 / 4. 1.101
libswscale 2. 5.101 / 2. 5.101
libswresample 0. 17.104 / 0. 17.104
[mpeg4 @ 0x7fcddb018000] Video uses a non-standard and wasteful way to store B-frames ('packed B-frames'). Consider using a tool like VirtualDub or avidemux to fix it.
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '103.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2mp41
encoder : Lavf55.26.100
Duration: 00:49:36.44, start: 0.000000, bitrate: 978 kb/s
Stream #0:0(und): Video: mpeg4 (Advanced Simple Profile) (mp4v / 0x7634706D), yuv420p, 512x368 [SAR 1:1 DAR 32:23], 852 kb/s, 23.98 fps, 23.98 tbr, 11988 tbn, 23.98 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 48000 Hz, stereo, s16p, 121 kb/s (default)
Metadata:
handler_name : SoundHandler
Output #0, mp4, to '103-new.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2mp41
encoder : Lavf55.26.100
Stream #0:0(und): Video: mpeg4 ( [0][0][0] / 0x0020), yuv420p, 512x368 [SAR 1:1 DAR 32:23], q=2-31, 852 kb/s, 23.98 fps, 11988 tbn, 11988 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: mp3 (i[0][0][0] / 0x0069), 48000 Hz, stereo, 121 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=71363 fps=5505 q=-1.0 Lsize= 355528kB time=00:49:36.43 bitrate= 978.5kbits/s
video:309567kB audio:44196kB subtitle:0 global headers:0kB muxing overhead 0.498835%
It worked fine, but, the resulting mp4 file is not seek-able in quick time player.. Any clue..? – Tony Thomas – 2014-07-15T06:40:29.750
1In my humble opinion, this is because quicktime player is dumb (A more accurate description is that it's probably missing an index). – Wyatt8740 – 2014-08-21T05:27:23.827
hmmm, I wonder why some of the videos converted from AVI to MP4 with the flag is sped up with no audio after I load them to my iPad. They play fine on VLC (Windows 7). – Sun – 2014-12-24T06:23:19.410
6I know this this a relatively old question/answer. I came across it searching for the solution to this same problem. Unfortunately,
-fflags +genpts
does not solve the problem. I'm getting exactly the same error. I'm running on OSX and have compiled ffmpeg from sources. – Aleks G – 2015-02-27T21:39:32.247You might want to setup a simple vagrant box of ubuntu to see if it works in linux.
– Xeoncross – 2016-02-12T20:54:13.723i'm getting the same error but when trying to record mpeg-ts stream to mp4 (-fflags +genpts didn't work) – ierdna – 2016-11-13T18:10:09.973
Thanks very much for the background detail and the suggested solution. That explains it a bit. So something like
ffmpeg -i 103.avi -fflags +genpts -codec copy -f mp4 103.mp4
? I actually tried that before posting here but it didn't fix the issue in my case. Do you know how to useavidemux
to fix this issue as suggested by the 2nd log? – Umar Farooq Khawaja – 2014-02-01T20:51:06.9335@UmarFarooqKhawaja
-fflags +genpts
needs to go before-i
. – Andrew Marshall – 2014-04-01T23:56:00.893