Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#4069 closed defect (fixed)

G.726 in mov cannot be decoded

Reported by: cgbug Owned by:
Priority: normal Component: avformat
Version: git-master Keywords: g726 mov
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no



ffmpeg version N-67289-g7f24e1e Copyright (c) 2000-2014 the FFmpeg developers

built on Oct 30 2014 00:04:25 with gcc 4.9.1 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-zlib
libavutil 54. 11.100 / 54. 11.100
libavcodec 56. 10.100 / 56. 10.100
libavformat 56. 11.100 / 56. 11.100
libavdevice 56. 2.100 / 56. 2.100
libavfilter 5. 2.100 / 5. 2.100
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100

[g726 @ 02a0f7c0] Invalid number of bits 16
[mov,mp4,m4a,3gp,3g2,mj2 @ 02a07a00] Failed to open codec in av_find_stream_info
[g726 @ 02a0f7c0] Invalid number of bits 16
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'g726.mp4':


major_brand : qt
minor_version : 512
compatible_brands: qt
creation_time : 1970-01-01 00:00:00
encoder : Lavf52.31.0
encoder-eng : Lavf52.31.0

Duration: 00:04:58.64, start: 0.000000, bitrate: 1750 kb/s

Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc), 800x600 [SAR 1:1 DAR 4:3], 1716 kb/s, 15 fps, 15 tbr, 100 tbn, 29.97 tbc (default)

creation_time : 1970-01-01 00:00:00
handler_name : DataHandler

Stream #0:1(eng): Audio: adpcm_g726 (ms[0]E / 0x4500736D), 8000 Hz, mono, 32 kb/s (default)

creation_time : 1970-01-01 00:00:00
handler_name : DataHandler

At least one output file must be specified

Change History (7)

comment:1 by Carl Eugen Hoyos, 8 years ago

Where did you find this file?
Which software plays it?

comment:2 by Carl Eugen Hoyos, 8 years ago

Component: avcodecavformat
Keywords: mov added
Reproduced by developer: set
Resolution: fixed
Status: newclosed
Summary: G.726 decode failureG.726 in mov cannot be decoded

I believe the file you uploaded does not conform to any specification and cannot be decoded without either a change to the file or the source code (that makes decoding other G.726 files impossible).
Commit e6b7246a allows to write files that can be decoded by FFmpeg. They probably don't conform to any specification either. If you have a G.726 mp4 file that can be decoded by any other player, please upload it.

If the file you uploaded can be decoded with any software, please tell us!

comment:3 by compn, 8 years ago

did not decode using binary codec from here:
also remuxing the audio didnt work (mencoder -oac copy > avi , ffmpeg avi > wav).

file looks like it was made by chinese security camera using lavf.
we would have to have the software that came with the camera to figure out how to play this back.

comment:4 by Carl Eugen Hoyos, 8 years ago

How do you know that this file was muxed by a security camera and why do you think playback is possible with the camera software?
It's not exactly difficult to play back the uploaded sample but imo it only makes sense if anything can play it.

comment:5 by compn, 8 years ago

because the video is in a warehouse or store full of security cameras?
and because the video has a timestamp, a classic sign of a video camera feed.

i think playback is possible because even the worst security cameras at least have a crummy player application.

comment:6 by cgbug, 8 years ago

I did not create this file myself. All I know is that it was created by muxing raw streams taken from a camera with GStreamer. The fix you committed will probably prevent similar broken files from being created in the future.

comment:7 by Carl Eugen Hoyos, 8 years ago

Thank you!

Note: See TracTickets for help on using tickets.