Help with transcoding h264 encoded TS on raspberry pi

Tim Müller tim at centricular.com
Fri Dec 13 02:40:54 PST 2013


On Fri, 2013-12-13 at 11:31 +0100, Stefan Simon wrote:

Hi Stefan,

> gst-launch-1.0 filesrc location=<file.ts> ! tsdemux ! h264parse !
> omxh264dec ! omxh264enc ! filesink location=test.h264
>
> this is as primitive as can get I suppose. Taking into account my
> non-existent experience with GSTreamer, this pipeline would make
> sense. Demux, parse, decode, encode, dump to a file. What I get is

Yeah, this looks like it should work in principle (assuming the encoder
outputs H.264 in byte-stream format).

> mpegtsbase.c(1620): mpegts_base_loop
> (): /GstPipeline:pipeline0/GstTSDemux:tsdemux0:
> stream stopped, reason not-negotiated

This indicates some caps negotiation issue.

> Any pointers to what I'm doing wrong? I also tried decodebin to
> construct the decoding pipeline for me, but it fails saying I don't
> have a h264 decoder..

Maybe first try these, and pass -v to gst-launch-1.0 so we can see the
caps:

gst-launch-1.0 -v filesrc location=<file.ts> ! tsdemux ! fakesink

gst-launch-1.0 -v filesrc location=<file.ts> ! tsdemux ! h264parse !
fakesink

gst-launch-1.0 -v filesrc location=<file.ts> ! tsdemux ! h264parse !
omxh264dec ! fakesink

If you have a desktop linux system at hand, maybe also run
gst-discoverer-{1.0,0.10} -v file.ts there and show us what it says.

 Cheers
  -Tim

-- 
Tim Müller, Centricular Ltd - http://www.centricular.com






More information about the gstreamer-devel mailing list