Discussion:
[FFmpeg-user] Can H263+ be in .3gp container?
Zhang Weiwu
2012-01-30 10:01:49 UTC
Permalink
Using ffmpeg 0.9.1 (from http://ffmpeg.org/download.html ) on Ubuntu.
The version of ffmpeg from Ubuntu I purged.

Various article on the Internet says .3gp container can contain H263+ in
it, thus can handle 320x240 resolution. It didn't work for me. Error
message:

[3gp @ 0x8fafea0] track 0: could not find tag, codec not currently
supported in container


So is it because strictly .3gp cannot contain H263+ or ffmpeg doesn't
support it? Or did I misread it?

Thanks in advance! The full output is below:

$ ffmpeg -i Big_Buck_Bunny_Trailer_1080p.ogg -s 320:240 -vcodec h263p -acodec aac -strict experimental Big_Buck_Bunny_Trailer.3gp
ffmpeg version 0.9.1-4:0.9.1-0ubuntu1~jon1, Copyright (c) 2000-2012 the FFmpeg developers
built on Jan 7 2012 15:09:01 with gcc 4.6.1
configuration: --extra-version='4:0.9.1-0ubuntu1~jon1' --arch=i386 --prefix=/usr --libdir=/usr/lib/i386-linux-gnu --disable-stripping --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --enable-runtime-cpudetect --enable-libfreetype --enable-vaapi --enable-gpl --enable-postproc --enable-x11grab --enable-librtmp --enable-libdc1394 --shlibdir=/usr/lib/i386-linux-gnu --enable-shared --disable-static
WARNING: library configuration mismatch
avutil configuration: --extra-version='4:0.9.1-0ubuntu1~jon1' --arch=i386 --prefix=/usr --libdir=/usr/lib/i386-linux-gnu --disable-stripping --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --enable-runtime-cpudetect --enable-libfreetype --enable-vaapi --enable-gpl --enable-postproc --enable-x11grab --enable-librtmp --enable-libdc1394 --shlibdir=/usr/lib/i386-linux-gnu/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-avconv
avcodec configuration: --extra-version='4:0.9.1-0ubuntu1~jon1' --arch=i386 --prefix=/usr --libdir=/usr/lib/i386-linux-gnu --disable-stripping --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --enable-runtime-cpudetect --enable-libfreetype --enable-vaapi --enable-gpl --enable-postproc --enable-x11grab --enable-librtmp --enable-libdc1394 --shlibdir=/usr/lib/i386-linux-gnu/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-avconv
avformat configuration: --extra-version='4:0.9.1-0ubuntu1~jon1' --arch=i386 --prefix=/usr --libdir=/usr/lib/i386-linux-gnu --disable-stripping --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --enable-runtime-cpudetect --enable-libfreetype --enable-vaapi --enable-gpl --enable-postproc --enable-x11grab --enable-librtmp --enable-libdc1394 --shlibdir=/usr/lib/i386-linux-gnu/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-avconv
avdevice configuration: --extra-version='4:0.9.1-0ubuntu1~jon1' --arch=i386 --prefix=/usr --libdir=/usr/lib/i386-linux-gnu --disable-stripping --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --enable-runtime-cpudetect --enable-libfreetype --enable-vaapi --enable-gpl --enable-postproc --enable-x11grab --enable-librtmp --enable-libdc1394 --shlibdir=/usr/lib/i386-linux-gnu/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-avconv
avfilter configuration: --extra-version='4:0.9.1-0ubuntu1~jon1' --arch=i386 --prefix=/usr --libdir=/usr/lib/i386-linux-gnu --disable-stripping --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --enable-runtime-cpudetect --enable-libfreetype --enable-vaapi --enable-gpl --enable-postproc --enable-x11grab --enable-librtmp --enable-libdc1394 --shlibdir=/usr/lib/i386-linux-gnu/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-avconv
swscale configuration: --extra-version='4:0.9.1-0ubuntu1~jon1' --arch=i386 --prefix=/usr --libdir=/usr/lib/i386-linux-gnu --disable-stripping --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --enable-runtime-cpudetect --enable-libfreetype --enable-vaapi --enable-gpl --enable-postproc --enable-x11grab --enable-librtmp --enable-libdc1394 --shlibdir=/usr/lib/i386-linux-gnu/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-avconv
postproc configuration: --extra-version='4:0.9.1-0ubuntu1~jon1' --arch=i386 --prefix=/usr --libdir=/usr/lib/i386-linux-gnu --disable-stripping --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --enable-runtime-cpudetect --enable-libfreetype --enable-vaapi --enable-gpl --enable-postproc --enable-x11grab --enable-librtmp --enable-libdc1394 --shlibdir=/usr/lib/i386-linux-gnu/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-avconv
libavutil 51. 32. 0 / 51. 32. 0
libavcodec 53. 42. 4 / 53. 42. 4
libavformat 53. 24. 2 / 53. 24. 2
libavdevice 53. 4. 0 / 53. 4. 0
libavfilter 2. 53. 0 / 2. 53. 0
libswscale 2. 1. 0 / 2. 1. 0
libpostproc 52. 0. 0 / 52. 0. 0
[theora @ 0x8fb0f00] 7 bits left in packet 82
Input #0, ogg, from 'Big_Buck_Bunny_Trailer_1080p.ogg':
Duration: 00:00:32.99, start: 0.000000, bitrate: 6757 kb/s
Stream #0:0: Video: theora, yuv420p, 1920x1080, 25 fps, 25 tbr, 25 tbn, 25 tbc
Stream #0:1: Audio: vorbis, 48000 Hz, stereo, s16, 80 kb/s
Metadata:
ENCODER : ffmpeg2theora 0.19
File 'Big_Buck_Bunny_Trailer.3gp' already exists. Overwrite ? [y/N] y
w:1920 h:1080 pixfmt:yuv420p tb:1/1000000 sar:0/1 sws_param:
[scale @ 0x9166e80] w:1920 h:1080 fmt:yuv420p -> w:320 h:180 fmt:yuv420p flags:0x4
[pad @ 0x9166ec0] w:320 h:180 -> w:320 h:240 x:0 y:0 color:0x108080FF[yuva]
[theora @ 0x8fb0f00] 7 bits left in packet 82
[3gp @ 0x8fafea0] track 0: could not find tag, codec not currently supported in container
Output #0, 3gp, to 'Big_Buck_Bunny_Trailer.3gp':
Metadata:
encoder : Lavf53.24.2
Stream #0:0: Video: h263p, yuv420p, 320x240, q=2-31, 200 kb/s, 90k tbn, 25 tbc
Stream #0:1: Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, s16, 128 kb/s
Metadata:
ENCODER : ffmpeg2theora 0.19
Stream mapping:
Stream #0:0 -> #0:0 (theora -> h263p)
Stream #0:1 -> #0:1 (vorbis -> aac)
Could not write header for output file #0 (incorrect codec parameters ?)
Carl Eugen Hoyos
2012-01-30 11:19:29 UTC
Permalink
Post by Zhang Weiwu
Various article on the Internet says .3gp container can contain H263+ in
it, thus can handle 320x240 resolution.
Please either point to one of the articles, or (much better) provide a sample.

Carl Eugen
Zhang Weiwu
2012-01-30 12:00:35 UTC
Permalink
Post by Carl Eugen Hoyos
Please either point to one of the articles, or (much better) provide a sample.
I didn't post a link because I wasn't sure if people read Chinese:-)
Here is the most significant:

http://zh.wikipedia.org/wiki/3gp
(search "320" to see the paragraph mentioning it)

I'd be willing to help by correcting that wikipedia article if it is
wrong and I got a solid reference:-)
Markus Fischer
2012-01-30 14:16:48 UTC
Permalink
Content preview: On 30.01.2012 13:00, Zhang Weiwu wrote: > 于 2012年01月30日
19:19, Carl Eugen Hoyos 写道: >> Please either point to one of the articles,
or (much better) provide a >> sample. > > I didn't post a link because I
wasn't sure if people read Chinese:-) > Here is the most significant: > >
http://zh.wikipedia.org/wiki/3gp > (search "320" to see the paragraph mentioning
it) [...]

Content analysis details: (-2.9 points, 5.0 required)

pts rule name description
---- ---------------------- --------------------------------------------------
-1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP
-1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1%
[score: 0.0000]
Subject: Re: [FFmpeg-user] Can H263+ be in .3gp container?
X-BeenThere: ffmpeg-***@ffmpeg.org
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: FFmpeg user questions and RTFMs <ffmpeg-***@ffmpeg.org>
List-Id: FFmpeg user questions and RTFMs <ffmpeg-user.ffmpeg.org>
List-Unsubscribe: <http://ffmpeg.org/mailman/options/ffmpeg-user>,
<mailto:ffmpeg-user-***@ffmpeg.org?subject=unsubscribe>
List-Archive: <http://ffmpeg.org/pipermail/ffmpeg-user>
List-Post: <mailto:ffmpeg-***@ffmpeg.org>
List-Help: <mailto:ffmpeg-user-***@ffmpeg.org?subject=help>
List-Subscribe: <http://ffmpeg.org/mailman/listinfo/ffmpeg-user>,
<mailto:ffmpeg-user-***@ffmpeg.org?subject=subscribe>
X-List-Received-Date: Mon, 30 Jan 2012 14:16:52 -0000
Post by Zhang Weiwu
Post by Carl Eugen Hoyos
Please either point to one of the articles, or (much better) provide a sample.
I didn't post a link because I wasn't sure if people read Chinese:-)
http://zh.wikipedia.org/wiki/3gp
(search "320" to see the paragraph mentioning it)
The English (and German) Wikipedia essentially contain the same information:

http://en.wikipedia.org/wiki/3GP_and_3G2#3GP

"... The 3GP file format stores video streams as MPEG-4 Part 2 or H.263
or MPEG-4 Part 10 (AVC/H.264), ..."

HTH
Carl Eugen Hoyos
2012-01-31 00:40:59 UTC
Permalink
Post by Markus Fischer
Post by Zhang Weiwu
http://zh.wikipedia.org/wiki/3gp
(search "320" to see the paragraph mentioning it)
http://en.wikipedia.org/wiki/3GP_and_3G2#3GP
"... The 3GP file format stores video streams as MPEG-4 Part 2 or H.263
or MPEG-4 Part 10 (AVC/H.264), ..."
That would be the exact opposite of what the OP claims is the case.

http://www.mp4ra.org/codecs.html does not mention H263+ afaict.

Carl Eugen
Zhang Weiwu
2012-01-31 02:05:09 UTC
Permalink
Post by Carl Eugen Hoyos
That would be the exact opposite of what the OP claims is the case.
http://www.mp4ra.org/codecs.html does not mention H263+ afaict.
I could find use of other codecs that can encode 320x240 video in 3gp as
well. The knowledge from Markus is thus very helpful. Since I am coding
for Android, here is my study note for a final review, correct me if I
am wrong:

Video codec support chart

.3gp .mp4 | ffmpeg-0.9 | Android
Registered | can encode | supports
---------------------------------------+------------+----------
MPEG-4 Part 10 (H.264) Yes Yes | No | Yes
MPEG-4 Part 2 Yes Yes | Yes | Yes*
H.263 Yes Yes | Yes | Yes
H.263+ No Yes | Yes | No**
MPEG-2 No Yes | Yes | No
MPEG-1 Part No Yes | Yes | No

* Android can only playback MPEG-4 Part 2 when it is in SimpleProfile and
in .3gp container. All Android support data is copied from
http://developer.android.com/guide/appendix/media-formats.html
** Not mentioned in the supported codec list, but worth to test.


I hope this chart is useful for others too.

Zhang Weiwu
Carl Eugen Hoyos
2012-01-31 10:01:44 UTC
Permalink
Post by Zhang Weiwu
.3gp .mp4 | ffmpeg-0.9 | Android
Registered | can encode | supports
---------------------------------------+------------+----------
H.263+ No Yes | Yes | No**
Please explain:
Where did you find information that H.263+ is registered for mp4?
How did you use ffmpeg to encode H.263+ to mp4 (command line)?

Thank you, Carl Eugen
Zhang Weiwu
2012-01-31 10:58:29 UTC
Permalink
Please explain: Where did you find information that H.263+ is
registered for mp4? How did you use ffmpeg to encode H.263+ to mp4
(command line)? Thank you, Carl Eugen
No I didn't. It was a mistake. Not able to find one on the Internet, I
gave a few dozen runs of ffmpeg, field-test to make this note and
misread some results. You don't have to accuse, pointing out is helpful
enough. Corrected here:



.3gp .mp4 | ffmpeg-0.9 | Android
Registered | can encode | supports

---------------------------------------+------------+----------

MPEG-4 Part 10 (H.264) Yes Yes | No | Yes

MPEG-4 Part 2 Yes Yes | Yes | Yes*

H.263 Yes Yes | Yes | Yes

H.263+ No No | Yes | No

MPEG-2 No Yes | Yes | No

MPEG-1 Part No Yes | Yes | No



* Android can only playback MPEG-4 Part 2 when it is in SimpleProfile and
in .3gp container. All Android support data is copied from
http://developer.android.com/guide/appendix/media-formats.html
Carl Eugen Hoyos
2012-01-31 11:39:27 UTC
Permalink
Post by Zhang Weiwu
.3gp .mp4 | ffmpeg-0.9 | Android
Registered | can encode | supports
---------------------------------------+------------+----------
H.263+ No No | Yes | No
Please explain:
How did you use ffmpeg to encode H.263+ to mp4 (command line)?

Or did you only mean that FFmpeg does contain an encoder for H.263+ with no
connection to which formats it can be muxed into?

Carl Eugen
Zhang Weiwu
2012-02-01 02:24:47 UTC
Permalink
Post by Carl Eugen Hoyos
Or did you only mean that FFmpeg does contain an encoder for H.263+ with no
connection to which formats it can be muxed into?
Yes, it is this case. Your words serve as a good footnote of the table.
Continue reading on narkive:
Loading...