FFMPEG required for h264 audio decoding?

About encoding, codec settings, muxers and filter usage
rbarrero
Blank Cone
Blank Cone
Posts: 31
Joined: 19 Feb 2008 09:27

FFMPEG required for h264 audio decoding?

Postby rbarrero » 08 Apr 2008 02:05

Hi;

Do I need to compile FFMPEG into VLC if i want to stream h264?

My problem is that VLC clients don't get Audio...only video. Yet there is no error from VLC (with -vvv). However, when I compile VLC with FFMPEG (--enable-ffmpeg and --with-ffmpeg-x264), I get audio... why do I need FFMPEG to decode audio? Doesn't VLC support this natively?

Here's my setup:

I have a h264 stream being pushed to Server A which reads the udp input and uses sout to push it via udp to server B. Server B receives the stream via udp and outputs via http. Users connect to server B to view h264 stream with vlc client.

Thanks,

Rafael

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37523
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: FFMPEG required for h264 audio decoding?

Postby Jean-Baptiste Kempf » 08 Apr 2008 07:43

What is the audio codec ?
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

rbarrero
Blank Cone
Blank Cone
Posts: 31
Joined: 19 Feb 2008 09:27

Re: FFMPEG required for h264 audio decoding?

Postby rbarrero » 08 Apr 2008 08:06

Here are the details of the stream:

"packetizer_mpeg4audio packetizer debug: running MPEG4 audio packetizer
packetizer_mpeg4audio packetizer debug: AAC 44100Hz 1024 samples/frame
main packetizer debug: using packetizer module "packetizer_mpeg4audio"
...
mux_ts generic debug: adding input codec=mp4a pid=68
mux_ts generic debug: adding input codec=h264 pid=69"

In my scenario, I'm not transcoding, just serving the stream via http to end-users... so why do I need ffmpeg to push this stream? Isn't this the responsibility of the client? Yet, with FFMPEG, it seems the clients need less codec support? Is this a correct assumption?

Merci,

Rafael

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37523
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: FFMPEG required for h264 audio decoding?

Postby Jean-Baptiste Kempf » 08 Apr 2008 09:27

To decode mp4a you must have faad into VLC.
To decode h264 (video) you must have FFmpeg into VLC.
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

rbarrero
Blank Cone
Blank Cone
Posts: 31
Joined: 19 Feb 2008 09:27

Re: FFMPEG required for h264 audio decoding?

Postby rbarrero » 08 Apr 2008 23:44

Thanks! When I --disable-ffmpeg, I can see the video... so is ffmpeg really required? So what does --enable-x264 do? Or --with-x264-tree for that matter? And will VLC ever have h264 without ffmpeg?

Thanks,

Rafael

jjrai
New Cone
New Cone
Posts: 4
Joined: 07 Apr 2008 18:00

Re: FFMPEG required for h264 audio decoding?

Postby jjrai » 08 Apr 2008 23:53

Along the lines of FFMPEG. I have a h.264 stream that is able to be fed to FFPlayer, but not to a vlc player. If I save the raw feed and then play it, it works fine. Is there a setting that I would need to change so that it will be able to stream to the vlc player. I am trying this with a VLC player, but the end state is to use the .Net interface that was done by Tapon.

JJ

johansyd
Blank Cone
Blank Cone
Posts: 25
Joined: 27 Feb 2008 11:10

Re: FFMPEG required for h264 audio decoding?

Postby johansyd » 10 Apr 2008 00:43

H.264 doesn't give vlc a decoding timestamp which makes it impossible to transcode h.264 or save it to file. If you are trying either of those, you will get problems.

viewtopic.php?f=4&t=45727

Streaming theora:

./vlc -vvv rtsp://158.39.162.136/my_stream.sdp --sout '#transcode{venc=theora,aenc=vorbis, vb=1024,ab=64}:duplicate{dst=std{access=shout{ogg=1,protocol=icy},mux=mux_ogg,dst=source:password@localhost:8000/test.ogg}}'

./vlc -vvv rtsp://158.39.162.136/my_stream.sdp --sout '#transcode{venc=theora,aenc=vorbis, vb=1024,ab=64}:std{access=shout{ogg=1,protocol=icy},mux=mux_ogg,dst=source:password@localhost:8000/test.ogg}'

On this one I can get a picture, but no transcoding:

./vlc -vvv rtsp://158.39.162.136/my_stream.sdp :sout=#transcode{venc=theora,aenc=vorbis, vb=1024,ab=64}:duplicate{dst=std{access=shout{ogg=1,protocol=icy},mux=mux_ogg,dst=source:password@localhost:8000/test.ogg}}

output:

Code: Select all

VLC media player 0.8.6f Janus [00000001] main private debug: checking builtin modules [00000001] main private debug: checking plugin modules [00000001] main private debug: loading plugins cache file /home/johansyd/.vlc/cache/plugins-04081e.dat [00000001] main private debug: recursively browsing `modules' [00000001] main private debug: recursively browsing `/usr/local/lib/vlc' [00000001] main private debug: recursively browsing `plugins' [00000001] main private debug: module bank initialized, found 426 modules [00000001] main private debug: opening config file /home/johansyd/.vlc/vlcrc [00000001] main private debug: CPU has capabilities 486 586 MMX MMXEXT SSE SSE2 FPU [00000001] main private debug: looking for memcpy module: 4 candidates [00000001] main private debug: using memcpy module "memcpymmxext" [00000548] main playlist debug: waiting for thread completion [00000548] main playlist debug: thread 1082132816 (playlist) created at priority 0 (playlist/playlist.c:184) [00000549] main private debug: waiting for thread completion [00000549] main private debug: thread 1090525520 (preparser) created at priority 0 (playlist/playlist.c:210) [00000550] main interface debug: looking for interface module: 2 candidates [00000550] main interface debug: using interface module "hotkeys" [00000550] main interface debug: thread 1098918224 (interface) created at priority 0 (interface/interface.c:231) [00000552] main interface debug: looking for interface module: 2 candidates [00000552] main interface debug: using interface module "screensaver" [00000552] main interface debug: thread 1107310928 (interface) created at priority 0 (interface/interface.c:231) [00000554] main interface debug: looking for interface module: 2 candidates [00000554] main interface debug: using interface module "showintf" [00000554] main interface debug: thread 1115703632 (interface) created at priority 0 (interface/interface.c:231) [00000548] main playlist debug: adding playlist item `rtsp://158.39.162.136/my_stream.sdp' ( rtsp://158.39.162.136/my_stream.sdp ) [00000556] main interface debug: looking for interface module: 8 candidates [00000556] main interface debug: using interface module "wxwidgets" [00000556] main interface debug: thread 1124096336 (manager) created at priority 0 (interface/interface.c:216) [00000556] wxwidgets interface debug: Using last windows config '(-1,0,0,1280,1024)(0,795,44,425,328)(2,0,25,410,564)(6,0,0,-1,150)' [00000556] wxwidgets interface debug: id=0 p=(795,44) s=(425,328) [00000556] wxwidgets interface debug: id=2 p=(0,25) s=(410,564) [00000556] wxwidgets interface debug: id=6 p=(0,0) s=(-1,150) [00000548] main playlist debug: nothing requested, starting [00000548] main playlist debug: creating new input thread [00000559] main input debug: waiting for thread completion [00000559] main input debug: creating statistics handler [00000561] main stream output debug: stream=`transcode' [00000562] main private debug: looking for sout stream module: 2 candidates [00000561] main stream output debug: stream=`std' [00000565] main private debug: looking for sout stream module: 2 candidates [00000565] main private debug: set sout option: sout-standard-access to shout{ogg=1,protocol=icy} [00000565] main private debug: set sout option: sout-standard-mux to mux_ogg [00000565] main private debug: set sout option: sout-standard-dst to source:sexy4you@localhost:8000/test.ogg [00000565] stream_out_standard private debug: creating `shout{ogg=1,protocol=icy}/mux_ogg://source:sexy4you@localhost:8000/test.ogg' [00000565] stream_out_standard private debug: extension is ogg [00000565] stream_out_standard private debug: extension -> mux=ogg [00000565] stream_out_standard private debug: using `shout{ogg=1,protocol=icy}/mux_ogg://source:sexy4you@localhost:8000/test.ogg' [00000567] main private debug: looking for sout access module: 1 candidate [00000567] main private warning: option ogg is unknown [00000567] main private warning: option protocol is unknown [00000567] access_output_shout private warning: failed to connect using 'icy' (shoutcast) protocol [00000559] main input debug: thread 1132489040 (input) created at priority 0 (input/input.c:265) [00000567] access_output_shout private debug: connected using 'http' (icecast 2.x) protocol [00000567] access_output_shout private debug: shout access output opened (source@localhost:8000/test.ogg) [00000567] main private debug: using sout access module "access_output_shout" [00000565] stream_out_standard private debug: access opened [00000569] main private debug: looking for sout mux module: 2 candidates [00000569] mux_ogg private: Open [00000569] main private debug: using sout mux module "mux_ogg" [00000561] main stream output debug: muxer support adding stream at any time [00000561] main stream output debug: muxer prefers to wait for all ES before starting to mux [00000565] stream_out_standard private debug: mux opened [00000565] main private debug: using sout stream module "stream_out_standard" [00000562] main private debug: set sout option: sout-transcode-venc to theora [00000562] main private debug: set sout option: sout-transcode-aenc to vorbis [00000562] main private debug: set sout option: sout-transcode-vb to 1024 [00000562] main private debug: set sout option: sout-transcode-ab to 64 [00000562] main private debug: using sout stream module "stream_out_transcode" [00000559] main input debug: `rtsp://158.39.162.136/my_stream.sdp' gives access `rtsp' demux `' path `158.39.162.136/my_stream.sdp' [00000559] main input debug: creating demux: access='rtsp' demux='' path='158.39.162.136/my_stream.sdp' [00000571] main demuxer debug: looking for access_demux module: 2 candidates Sending request: OPTIONS rtsp://158.39.162.136/my_stream.sdp RTSP/1.0 CSeq: 1 User-Agent: VLC media player (LIVE555 Streaming Media v2007.02.20) Received OPTIONS response: RTSP/1.0 200 OK Server: QTSS/5.5.3 (Build/489.0.4; Platform/MacOSX; Release/Update; ) Cseq: 1 Public: DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, OPTIONS, ANNOUNCE, RECORD Sending request: DESCRIBE rtsp://158.39.162.136/my_stream.sdp RTSP/1.0 CSeq: 2 Accept: application/sdp User-Agent: VLC media player (LIVE555 Streaming Media v2007.02.20) Received DESCRIBE response: RTSP/1.0 200 OK Server: QTSS/5.5.3 (Build/489.0.4; Platform/MacOSX; Release/Update; ) Cseq: 2 Cache-Control: no-cache Content-length: 527 Date: Thu, 10 Apr 2008 00:12:57 GMT Expires: Thu, 10 Apr 2008 00:12:57 GMT Content-Type: application/sdp x-Accept-Retransmit: our-retransmit x-Accept-Dynamic-Rate: 1 Content-Base: rtsp://158.39.162.136/my_stream.sdp/ Need to read 527 extra bytes Read 527 extra bytes: v=0 o=- 367772162 367772162 IN IP4 127.0.0.0 s=Wirecast c=IN IP4 0.0.0.0 t=0 0 a=range:npt=now- a=control:* m=audio 0 RTP/AVP 96 a=rtpmap:96 mpeg4-generic/44100/2 a=fmtp:96 profile-level-id=15;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1210 a=control:trackid=1 m=video 0 RTP/AVP 97 a=rtpmap:97 MP4V-ES/90000 a=fmtp:97 profile-level-id=1;config=000001B0F3000001B50EE040C0CF0000010000000120008440FA285020F0A31F a=cliprect:0,0,240,320 a=framesize:97 320-240 b=AS:1372 a=control:trackid=2 [00000571] live555 demuxer debug: RTP subsession 'audio/MPEG4-GENERIC' Sending request: SETUP rtsp://158.39.162.136/my_stream.sdp/trackid=1 RTSP/1.0 CSeq: 3 Transport: RTP/AVP;unicast;client_port=32822-32823 User-Agent: VLC media player (LIVE555 Streaming Media v2007.02.20) Received SETUP response: RTSP/1.0 200 OK Server: QTSS/5.5.3 (Build/489.0.4; Platform/MacOSX; Release/Update; ) Cseq: 3 Cache-Control: no-cache Session: 3555079508826329464 Date: Thu, 10 Apr 2008 00:12:57 GMT Expires: Thu, 10 Apr 2008 00:12:57 GMT Transport: RTP/AVP;unicast;source=158.39.162.136;client_port=32822-32823;server_port=6976-6977 [00000571] live555 demuxer debug: RTP subsession 'video/MP4V-ES' Sending request: SETUP rtsp://158.39.162.136/my_stream.sdp/trackid=2 RTSP/1.0 CSeq: 4 Transport: RTP/AVP;unicast;client_port=32824-32825 Session: 3555079508826329464 User-Agent: VLC media player (LIVE555 Streaming Media v2007.02.20) Received SETUP response: RTSP/1.0 200 OK Server: QTSS/5.5.3 (Build/489.0.4; Platform/MacOSX; Release/Update; ) Cseq: 4 Session: 3555079508826329464 Cache-Control: no-cache Date: Thu, 10 Apr 2008 00:12:57 GMT Expires: Thu, 10 Apr 2008 00:12:57 GMT Transport: RTP/AVP;unicast;source=158.39.162.136;client_port=32824-32825;server_port=6970-6971 Sending request: PLAY rtsp://158.39.162.136/my_stream.sdp/ RTSP/1.0 CSeq: 5 Session: 3555079508826329464 Range: npt=0.000- User-Agent: VLC media player (LIVE555 Streaming Media v2007.02.20) Received PLAY response: RTSP/1.0 200 OK Server: QTSS/5.5.3 (Build/489.0.4; Platform/MacOSX; Release/Update; ) Cseq: 5 Session: 3555079508826329464 Range: npt=now- RTP-Info: url=rtsp://158.39.162.136/my_stream.sdp/trackid=1,url=rtsp://158.39.162.136/my_stream.sdp/trackid=2 [00000559] main input debug: selecting program id=0 [00000571] main demuxer debug: using access_demux module "live555" [00000574] main packetizer debug: looking for packetizer module: 33 candidates [00000574] packetizer_mpeg4audio packetizer debug: running MPEG4 audio packetizer [00000574] packetizer_mpeg4audio packetizer debug: AAC 44100Hz 1024 samples/frame [00000574] main packetizer debug: using packetizer module "packetizer_mpeg4audio" [00000559] main input debug: stream out mode -> no decoder thread [00000609] main packetizer debug: looking for packetizer module: 33 candidates [00000609] packetizer_mpeg4video packetizer debug: opening with vol size: 33 [00000609] main packetizer debug: using packetizer module "packetizer_mpeg4video" [00000559] main input debug: stream out mode -> no decoder thread [00000559] main input debug: starting in async mode [00000559] main input debug: `rtsp://158.39.162.136/my_stream.sdp' successfully opened [00000561] main stream output debug: adding a new input [00000562] stream_out_transcode private debug: creating video transcoding from fcc=`mp4v' to fcc=` ' [00000612] main decoder debug: looking for decoder module: 48 candidates [00000612] ffmpeg decoder debug: libavcodec initialized (interface 3352064 ) [00000612] ffmpeg decoder debug: postprocessing disabled [00000612] ffmpeg decoder debug: using direct rendering [00000612] ffmpeg decoder debug: ffmpeg codec (MPEG-4 Video) started [00000612] main decoder debug: using decoder module "ffmpeg" [00000613] main encoder debug: looking for encoder module: 1 candidate [00000613] main encoder debug: using encoder module "theora" [00000613] main encoder debug: removing module "theora" [00000612] ffmpeg decoder warning: warning: first frame is no keyframe (mpeg4@0xfa3e30) [00000562] stream_out_transcode private debug: decoder aspect is 576000:432000 [00000562] stream_out_transcode private debug: source pixel aspect is 1.000000:1 [00000562] stream_out_transcode private debug: scaled pixel aspect is 1.000000:1 [00000562] stream_out_transcode private debug: source 320x240, crop 320x240, destination 320x240, padding 320x240 [00000562] stream_out_transcode private debug: encoder aspect is 576000:432000 [00000613] main encoder debug: looking for encoder module: 1 candidate [00000613] main encoder debug: using encoder module "theora" [00000569] main private debug: adding a new input [00000569] mux_ogg private debug: adding input [00000569] mux_ogg private debug: theora stream Segmentation fault (core dumped)

Istream
New Cone
New Cone
Posts: 4
Joined: 16 Apr 2008 15:50

Re: FFMPEG required for h264 audio decoding?

Postby Istream » 02 May 2008 15:46

To decode mp4a you must have faad into VLC.
To decode h264 (video) you must have FFmpeg into VLC.
Related to this, is there way to know which faad and FFMPEG version is used with each VLC version? Especially, what were used for the newest official (f-version)?

Thanks.

johansyd
Blank Cone
Blank Cone
Posts: 25
Joined: 27 Feb 2008 11:10

Re: FFMPEG required for h264 audio decoding?

Postby johansyd » 04 May 2008 19:58

Yes there is. You can run vlc from the commandline. I don't know which operativ system you are on, but depending on which operativ system you are using it is something like this:

linux, unix, mac:

vlc/[path to the application]/ -l | grep h.264
vlc/[path to the application]/ -l | grep h264
vlc/[path to the application]/ -l | grep faad
vlc/[path to the application]/ -l | grep mp4a
vlc/[path to the application]/ -l | grep FFmpeg

windows:

vlc/[path to the application]/ -l | FINDSTR h.264
vlc/[path to the application]/ -l | FINDSTR h264
vlc/[path to the application]/ -l | FINDSTR faad
vlc/[path to the application]/ -l | FINDSTR mp4a
vlc/[path to the application]/ -l | FINDSTR FFmpeg


Return to “VLC stream-output (sout)”

Who is online

Users browsing this forum: No registered users and 18 guests