Hello,
I’ve a question about gstreamer mpegtsmux plugin.
I’m working with Raspberry PI camera i need to provide a mpeg-ts feed with a h264 stream, sent via network, if I use libav the system works (i modified the pipeline to save the result to a file to examine it with gst-discoverer-1.0, in the working version I have a udpsink instead of a filesink):
pipeline:
rpicam-vid --codec libav --libav-format mpegts --low-latency 1 --framerate 30 –width 1920 --height 1080 -n -t 0 -b 1000000 -o - | gst-launch-1.0 fdsrc ! filesink location=“OK.mp4”
gst-discoverer-1.0 output for OK.mp4:
Properties:
Duration: 0:00:00.000000000
Seekable: no
Live: no
container #0: MPEG-2 Transport Stream
video #1: H.264 (High Profile)
Stream ID: 640b9aeea45f723f3dd59c5ebe4263a9b3e6025f2081f207ee1938a33b1077e
c:1/00000100
Width: 1920
Height: 1080
Depth: 24
Frame rate: 30/1
Pixel aspect ratio: 1/1
Interlaced: false
Bitrate: 0
Max bitrate: 0
If I don’t user libav in rpicam-vid app, but I get the x264 stream and try to create the mpeg-ts feed in gstreamer, the output is different, and the destination app cannot use it.
The only difference with the version that works is the stream is seekable and duration is different than 0:
pipeline:
rpicam-vid --low-latency 1 --framerate 30 --width 1920 --height 1080 -n -t 0 -b 1000000 -o - | gst-launch-1.0 fdsrc ! h264parse ! mpegtsmux ! filesink location=NOOK.mp4
gst-discoverer-1.0 output for NOOK.mp4:
Properties:
Duration: 0:00:05.300006407
Seekable: yes
Live: no
container #0: MPEG-2 Transport Stream
video #1: H.264 (High Profile)
Stream ID: 12dec7b0069bd8ddf929d3f73486b9c77ae8e205658a41a9ee73cc26f0db2ee
0:1/00000041
Width: 1920
Height: 1080
Depth: 24
Frame rate: 30/1
Pixel aspect ratio: 1/1
Interlaced: false
Bitrate: 0
Max bitrate: 0
It’s a bug in mpegtsmux or am I missing something ?
Thanks,
Igor