Opened 13 years ago

Closed 11 years ago

#356 closed defect (fixed)

-profile aac_low option sets also the profile for the video codec

Reported by: Thierry Owned by:
Priority: normal Component: avcodec
Version: git-master Keywords:
Cc: tfoucu@gmail.com Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

ex:
./ffmpeg -i trailer_720p.20.flv -b 56000 -vf scale=176:144 -level 8 -vcodec mpeg4 -ab 24000 -ar 22050 -ac 1 -profile aac_low -acodec libfaac -f mp4 -y /tmp/test.mp4

will generate a mp4 file with the video codec profile/level to be 24

output from mp4info:
Track Type Info
1 video MPEG-4 Unknown Profile(24), 211.085 secs, 63 kbps, 176x144 @ 23.976123 fps
2 audio MPEG-4 AAC LC, 211.162 secs, 24 kbps, 22050 Hz

if you remove the profile option from the command line, output of mp4info
Track Type Info
1 video MPEG-4 Simple @ L0, 211.085 secs, 63 kbps, 176x144 @ 23.976123 fps
2 audio MPEG-4 AAC LC, 211.162 secs, 24 kbps, 22050 Hz

So, it seems that -profile aac_low does set the profile of the video encoder context to be 1 as well as the audio encoder context.

The exact output of the command line with -profile aac_low
./ffmpeg -i trailer_720p.20.flv -b 56000 -vf scale=176:144 -level 8 -vcodec mpeg4 -ab 24000 -ar 22050 -ac 1 -profile aac_low -acodec libfaac -f mp4 -y /tmp/test.mp4
ffmpeg version N-31566-gd303e0a, Copyright (c) 2000-2011 the FFmpeg developers

built on Jul 19 2011 20:35:45 with gcc 4.4.3
configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-libfaac
libavutil 51. 11. 0 / 51. 11. 0
libavcodec 53. 8. 0 / 53. 8. 0
libavformat 53. 6. 0 / 53. 6. 0
libavdevice 53. 2. 0 / 53. 2. 0
libavfilter 2. 27. 0 / 2. 27. 0
libswscale 2. 0. 0 / 2. 0. 0
libpostproc 51. 2. 0 / 51. 2. 0

[flv @ 0x260d420] Estimating duration from bitrate, this may be inaccurate

Seems stream 0 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 23.98 (24000/1001)
Input #0, flv, from 'trailer_720p.20.flv':

Duration: 00:03:31.06, start: 0.000000, bitrate: 256 kb/s

Stream #0.0: Video: flv, yuv420p, 1280x720, 23.98 tbr, 1k tbn, 1k tbc
Stream #0.1: Audio: mp3, 44100 Hz, stereo, s16, 256 kb/s

[buffer @ 0x260d360] w:1280 h:720 pixfmt:yuv420p tb:1/1000000 sar:0/1 sws_param:
[scale @ 0x2610d40] w:1280 h:720 fmt:yuv420p -> w:176 h:144 fmt:yuv420p flags:0x4
Output #0, mp4, to '/tmp/test.mp4':

Metadata:

encoder : Lavf53.6.0
Stream #0.0: Video: mpeg4, yuv420p, 176x144, q=2-31, 56 kb/s, 24k tbn, 23.98 tbc
Stream #0.1: Audio: libfaac (LC), 22050 Hz, 1 channels, s16, 24 kb/s

Stream mapping:

Stream #0.0 -> #0.0
Stream #0.1 -> #0.1

Press [q] to stop, ? for help
frame= 5061 fps=141 q=2.0 Lsize= 2320kB time=00:03:31.08 bitrate= 90.0kbits/s
video:1623kB audio:619kB global headers:0kB muxing overhead 3.477867%

Change History (3)

comment:1 by Michael Niedermayer, 13 years ago

Reproduced by developer: set

The correct way to do this now is to use -profile:a aac_low
i need to think about what to do about -profile aac_low

comment:2 by Michael Niedermayer, 13 years ago

Also for old as well as current ffmpeg -aprofile aac_low could be used to achive this.

comment:3 by Elon Musk, 11 years ago

Resolution: fixed
Status: newclosed

Sort of fixed, now it display warning message, but does not abort.

Note: See TracTickets for help on using tickets.