Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 195587 - media-video/transcode-1.0.4: cannot encode video as H.264 with ffmpeg
Summary: media-video/transcode-1.0.4: cannot encode video as H.264 with ffmpeg
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Gentoo Media-video project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-10-12 05:49 UTC by Marek Szuba
Modified: 2008-12-17 07:09 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Marek Szuba archtester gentoo-dev 2007-10-12 05:49:25 UTC
I have built the ffmpeg library (media-video/ffmpeg-0.4.9_p20070616-r1) with USE=x264 (against media-libs/x264-svn-20070924), as a result I can both play H.264 video (I've tried ffplay and mplayer, both work fine) and encode video as such (with the ffmpeg binary). However, when I try to use transcode for that purpose it fails claiming the appropriate codec cannot be found.


Reproducible: Always

Steps to Reproduce:
1. Try to encode a clip with ffmpeg directly: ffmpeg -i in.dv -vcodec h264 -b 700 -level 13 out.avi
2. Try to do the same with transcode (here with full debug output): transcode -i in.dv -F h264 -y ffmpeg -o out.avi

Actual Results:  
Enclosed output from transcode, with full debug output (-q 511):

transcode v1.0.4 (C) 2001-2003 Thomas Oestreich, 2003-2004 T. Bitterberg, 2004-2007 Transcode Team
[tcprobe] Digital Video (NTSC)
[transcode] (probe) suggested AV correction -D 0 (0 ms) | AV 0 ms | 0 ms
(probe.c) V magic=0x1f0700bf, A magic=0x1f0700bf, V codec=0x1000, A codec=0x1
(probe.c) V magic=, A magic=, V codec=Digital Video, A codec=PCM
[transcode] auto-probing source in.dv (ok)
[transcode] V: import format    | Digital Video  (V=dv|A=dv)
[transcode] V: import frame     | 720x480  1.50:1  encoded @ 16:9
[transcode] V: bits/pixel       | 0.174
[transcode] V: decoding fps,frc | 29.970,4
[transcode] V: Y'CbCr           | YV12/I420
[transcode] A: import format    | 0x1     PCM          [48000,16,2] 1536 kbps
[transcode] A: export format    | 0x55    MPEG layer-3 [48000,16,2]  128 kbps
[transcode] V: encoding fps,frc | 29.970,4
[transcode] A: bytes per frame  | 6408 (6406.400000)
[transcode] A: adjustment       | -1600@1000
[transcode] V: IA32/AMD64 accel | sse2 (sse2 sse 3dnowext 3dnow mmxext mmx asm C)
tc_memcpy: using amd64 for memcpy
[transcode] encoder delay = decode=40000 encode=40000 usec
[transcode] V: video buffer     | 10 @ 720x480
[transcode] allocating 10 framebuffer (static)
loading audio import module /usr/lib64/transcode/import_dv.so
loading video import module /usr/lib64/transcode/import_dv.so
module=tca_import [option=20, flag=511]
[import_dv.so] v0.3.1 (2003-10-14) (video) DV | (audio) PCM
Audio capability flag 0x32b | 0x1
module=tcv_import [option=20, flag=511]
Video capability flag 0x32b | 0x2
loading audio export module /usr/lib64/transcode/export_ffmpeg.so
loading video export module /usr/lib64/transcode/export_ffmpeg.so
module=tca_export [option=10, flag=511]
[export_ffmpeg.so] v0.3.13 (2004-08-03) (video) Lavc51.40.4 | (audio) MPEG/AC3/PCM
(encoder.c) audio capability flag 0x21f | 0x1
module=tcv_export [option=10, flag=511]
(encoder.c) video capability flag 0x21f | 0x2
[transcode] starting 1 frame processing thread(s)
[transcode] starting 1 frame processing thread(s)
module=tca_import [option=21, flag=2]
[import_dv.so] tcextract -x dv -i "in.dv" -d 511 | tcdecode -x dv -y pcm -d 511
module=tcv_import [option=21, flag=1]
[import_dv.so] tcextract -x dv -i "in.dv" -d 511 | tcdecode -x dv -y yv12 -d 511 -Q 5
module=tcv_export [option=12, flag=1]
[export_ffmpeg.so] Could not find a FFMPEG codec for 'h264'.
video export module error
[transcode] warning : (encoder.c) video export module error: init failed
[transcode] critical: failed to init encoder
tc_memcpy: using amd64 for memcpy
[tcextract] (pid=6315) Digital Video (NTSC)
[tcextract] (pid=6315) starting, doing dv
tc_memcpy: using amd64 for memcpy
[tcextract] (pid=6314) Digital Video (NTSC)
[tcextract] (pid=6314) starting, doing dv
(decode_dv.c) header parsing failed (2)
(decode_dv.c) NTSC video: 720x480 framesize=120000 sampling=1
(decode_dv.c) header parsing failed (2)
(decode_dv.c) audio: 48000 Hz, 2 channels

Expected Results:  
An AVI file with video encoded as H.264.

$ emerge --info
Portage 2.1.3.12 (default-linux/amd64/2007.0/desktop, gcc-4.2.1, glibc-2.6.1-r0, 2.6.23 x86_64)
=================================================================
System uname: 2.6.23 x86_64 AMD Athlon(tm) 64 Processor 4000+
Timestamp of tree: Thu, 11 Oct 2007 15:50:01 +0000
ccache version 2.4 [enabled]
app-shells/bash:     3.2_p17-r1
dev-java/java-config: 1.3.7, 2.1.1
dev-lang/python:     2.5.1-r2
dev-util/ccache:     2.4-r7
sys-apps/baselayout: 1.12.10-r5
sys-apps/sandbox:    1.2.18.1
sys-devel/autoconf:  2.13, 2.61-r1
sys-devel/automake:  1.4_p6, 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils:  2.18-r1
sys-devel/gcc-config: 1.4.0-r3
sys-devel/libtool:   1.5.24
virtual/os-headers:  2.6.22-r2
ACCEPT_KEYWORDS="amd64 ~amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=athlon64 -O2 -pipe -fforce-addr -fstack-protector"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config /var/qmail/alias /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-march=athlon64 -O2 -pipe -fforce-addr -fstack-protector"
DISTDIR="/usr/portage/distfiles"
FEATURES="ccache collision-protect distlocks metadata-transfer sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://ftp.ucsb.edu/pub/mirrors/linux/gentoo/ http://mirror.mcs.anl.gov/pub/gentoo/"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage"
USE="3dnow X a52 aac acl acpi alsa amd64 audiofile bash-completion berkdb bitmap-fonts bluetooth bzip2 cairo caps cddb cdparanoia cdr clamav cli cracklib crypt cscope cups curl dbus dga directfb dri dts dv dvd dvdr dvdread emboss encode evo exif expat fam fbcon ffmpeg firefox flac fortran ftp gdbm gif gmp gphoto2 gpm gps gtk iconv idn ieee1394 imagemagick ipv6 isdnlog java jpeg jpeg2k lcms lm_sensors logrotate mad maildir midi mikmod mime mmap mmx mng mp3 mpeg mudflap ncurses nls nptl nptlonly nsplugin offensive ogg openal opengl openmp pam pcre pdf perl pic png posix pppd python qt3 qt3support qt4 quicktime readline recode reflection sdl session slang sndfile speex spell spl sse sse2 ssl svg tcpd tetex theora threads tiff truetype truetype-fonts type1-fonts unicode v4l v4l2 vcd vorbis wmf wxwindows x264 xface xml xorg xpm xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" CAMERAS="canon ptp2" ELIBC="glibc" INPUT_DEVICES="evdev keyboard mouse wacom" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="radeon"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

$ equery u transcode                 
[ Found these USE variables for media-video/transcode-1.0.4 ]
 U I
 + + 3dnow        : Adds support for 3dnow multimedia processor instructions
 + + X            : Adds support for X11
 + + a52          : Enables support for decoding ATSC A/52 streams used in DVD
 - - altivec      : Adds support for optimizations for G4 and G5/ppc970 processors
 + + dv           : Enables support for a codec used by many camcorders
 + + dvdread      : Enables usage of Ogle's libdvdread for DVD playback
 - - extrafilters : Install some filters only if we ask for them
 - - fame         : Enables libfame support
 + + iconv        : Enable support for the iconv character set conversion library
 + + imagemagick  : Enables support for Imagemagick (image converter)
 + + jpeg         : Adds JPEG image support
 - - lzo          : Enables support for lzo compression
 + + mjpeg        : Enables mjpegtools support
 + + mmx          : Adds support for optimizations for Pentium MMX and Athlon class processors
 + + mp3          : Add support for reading mp3 files
 + + mpeg         : Adds libmpeg3 support to various packages.
 - - network      : Enables network streaming support
 + + ogg          : Adds support for the Ogg container format (commonly used by Vorbis, Theora and flac)
 - - oss          : Adds support for OSS (Open Sound System)
 + + quicktime    : Adds support for OpenQuickTime
 + + sdl          : Adds support for Simple Direct Layer (media library)
 + + sse          : fast floating point optimization for PentiumIII+ class chips
 + + sse2         : faster floating point optimization for SSE2 capable chips
 + + theora       : Adds support for the Theora Video Compression Codec
 + + truetype     : Adds support for FreeType and/or FreeType2 fonts
 + + v4l2         : Enable video4linux2 support
 + + vorbis       : Adds support for the OggVorbis audio codec
 + + xml          : Add support for XML files
 + + xvid         : Adds support for xvid.org's open-source mpeg-4 codec

$ equery u ffmpeg
[ Found these USE variables for media-video/ffmpeg-0.4.9_p20070616-r1 ]
 U I
 + + X        : Adds support for X11
 + + a52      : Enables support for decoding ATSC A/52 streams used in DVD
 + + aac      : Enables support for MPEG-4 AAC Audio
 - - altivec  : Adds support for optimizations for G4 and G5/ppc970 processors
 - - amr      : Enables Adaptive Multi-Rate Audio support
 - - debug    : Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see http://www.gentoo.org/proj/en/qa/backtraces.xml .
 - - doc      : Adds extra documentation (API, Javadoc, etc)
 + + encode   : Adds support for encoding of audio or video files
 + + ieee1394 : Enable FireWire/iLink IEEE1394 support (dv, camera, ...)
 - - imlib    : Adds support for imlib, an image loading and rendering library
 + + mmx      : Adds support for optimizations for Pentium MMX and Athlon class processors
 - - network  : Enables network streaming support
 + + ogg      : Adds support for the Ogg container format (commonly used by Vorbis, Theora and flac)
 - - oss      : Adds support for OSS (Open Sound System)
 + + sdl      : Adds support for Simple Direct Layer (media library)
 - - test     : Workaround to pull in packages needed to run with FEATURES=test. Portage-2.1.2 handles this internally, so don't set it in make.conf/package.use anymore.
 + + theora   : Adds support for the Theora Video Compression Codec
 + + threads  : Adds threads support for various packages. Usually pthreads
 + + truetype : Adds support for FreeType and/or FreeType2 fonts
 + + v4l      : Enables video4linux support
 + + vorbis   : Adds support for the OggVorbis audio codec
 + + x264     : Enable h264 encoding using x264
 + + xvid     : Adds support for xvid.org's open-source mpeg-4 codec
 + + zlib     : Adds support for zlib (de)compression

$ equery u x264-svn
[ Found these USE variables for media-libs/x264-svn-20070924 ]
 U I
 - - debug   : Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see http://www.gentoo.org/proj/en/qa/backtraces.xml .
 + + threads : Adds threads support for various packages. Usually pthreads
Comment 1 Shawn Haggett 2007-10-28 13:13:17 UTC
I've found this same problem. There's been some discussion on the transcode-users mailing list ( http://lists.exit1.org/mailman/listinfo/transcode-users ). I can't find a list archive however to point you to the thread. However there has been a new version released yesterday (version 1.0.5rc3) and while I thought initially it worked, it's now giving me the same cannot find codec message again.
Comment 2 Francesco Romani 2007-10-29 09:10:21 UTC
(In reply to comment #1)
> I've found this same problem. There's been some discussion on the
> transcode-users mailing list (
> http://lists.exit1.org/mailman/listinfo/transcode-users ). I can't find a list
> archive however to point you to the thread.

Hi, there is gmane interface avalaible:
http://news.gmane.org/gmane.comp.video.transcode.user

> However there has been a new
> version released yesterday (version 1.0.5rc3) and while I thought initially it
> worked, it's now giving me the same cannot find codec message again.

Uhm, already posted on transcode-users? If yes and i've not answered, please bug me again.
Comment 3 Patrick Grimm 2008-04-04 17:21:46 UTC
(In reply to comment #2)
> (In reply to comment #1)
> > I've found this same problem. There's been some discussion on the
> > transcode-users mailing list (
> > http://lists.exit1.org/mailman/listinfo/transcode-users ). I can't find a list
> > archive however to point you to the thread.
> 
> Hi, there is gmane interface avalaible:
> http://news.gmane.org/gmane.comp.video.transcode.user
> 
> > However there has been a new
> > version released yesterday (version 1.0.5rc3) and while I thought initially it
> > worked, it's now giving me the same cannot find codec message again.
> 
> Uhm, already posted on transcode-users? If yes and i've not answered, please
> bug me again.
> 
Hm
I have a workaround.
emerge =media-video/ffmpeg-0.4.9_p20080326

make compat symlinks like these

adler32.h -> ../libavutil/adler32.h
avcodec.h -> ../libavcodec/avcodec.h
avdevice.h -> ../libavdevice/avdevice.h
avfilter.h -> ../libavfilter/avfilter.h
avformat.h -> ../libavformat/avformat.h
avio.h -> ../libavformat/avio.h
avstring.h -> ../libavutil/avstring.h
avutil.h -> ../libavutil/avutil.h
base64.h -> ../libavutil/base64.h
common.h -> ../libavutil/common.h
crc.h -> ../libavutil/crc.h
fifo.h -> ../libavutil/fifo.h
intfloat_readwrite.h -> ../libavutil/intfloat_readwrite.h
log.h -> ../libavutil/log.h
lzo.h -> ../libavutil/lzo.h
mathematics.h -> ../libavutil/mathematics.h
md5.h -> ../libavutil/md5.h
mem.h -> ../libavutil/mem.h
opt.h -> ../libavcodec/opt.h
random.h -> ../libavutil/random.h
rational.h -> ../libavutil/rational.h
rtspcodes.h -> ../libavformat/rtspcodes.h
rtsp.h -> ../libavformat/rtsp.h
sha1.h -> ../libavutil/sha1.h

and then

emerge =media-video/transcode-1.0.6_rc1-r1
Comment 4 Samuli Suominen (RETIRED) gentoo-dev 2008-12-17 07:09:29 UTC
New ffmepg is now in stable for x86 (amd64 is still slacking), and transcode-1.0.7_rc1 is now in stable and last version in tree. Should close this bug.