GNOME Bugzilla – Bug 627343
x264enc does not work when tee to xvimagesink is present in the pipeline
Last modified: 2010-08-19 10:12:32 UTC
This: gst-launch-0.10 -e filesrc location=test2.avi ! queue ! decodebin2 ! queue ! tee name=t ! queue ! ffmpegcolorspace ! x264enc ! matroskamux ! queue ! filesink location=test2-out.mkv t. ! queue ! ffmpegcolorspace ! xvimagesink sync=false results in a completely frozen pipeline. However, this: gst-launch-0.10 -e filesrc location=test2.avi ! queue ! decodebin2 ! queue ! tee name=t ! queue ! ffmpegcolorspace ! theoraenc ! matroskamux ! queue ! filesink location=test2-out.mkv t. ! queue ! ffmpegcolorspace ! xvimagesink sync=false (x264enc -> theoraenc) works fine. Also, this: gst-launch-0.10 -e filesrc location=test2.avi ! queue ! decodebin2 ! queue ! tee name=t ! queue ! ffmpegcolorspace ! x264enc ! matroskamux ! queue ! filesink location=test2-out.mkv (x264enc only, without xvimagesink) works fine.
Problem is that x264enc default settings want to see quite some frames before actually producing coded output. A number of variations will work, e.g. making some queues bigger, or using x264enc rc-lookahead=0 (or some other small number), or some low-latency preset/tuning, etc