<div dir="ltr"><div><div>Hi!<br><br></div>I use gstreamer 1.8.2 to grab video from uvc camera to mp4 file.<br><br></div>Pipeline looks like:<br><div><br>gst-launch-1.0 -qe \<br>    v4l2src device=/dev/video0 do-timestamp=true ! video/x-raw,width=640,height=480,framerate=30/1 \<br>  ! videoconvert \<br>  ! omxh264enc target-bitrate=524288 control-rate=variable ! video/x-h264,profile=baseline \<br>  ! h264parse \<br>  ! mp4mux \<br>  ! filesink location=video.mp4<br><br></div><div>But I need to split this pipeline into three parts using fdsink and fdsrc elements like this:<br></div><div><div><div><br>gst-launch-1.0 -qe \<br>    v4l2src device=/dev/video0 do-timestamp=true ! video/x-raw,width=640,height=480,framerate=30/1 \<br>  ! videoconvert \<br>  ! omxh264enc target-bitrate=524288 control-rate=variable ! video/x-h264,profile=baseline \<br>  ! h264parse config-interval=1 \<br>  ! mpegtsmux \<br>  ! fdsink \<br>|<br>gst-launch-1.0 -qe \<br>    fdsrc \<br>  ! tsparse \<br>  ! tsdemux \<br>  ! h264parse \<br>  ! mp4mux \<br>  ! filesink location=video.mp4<br><br></div><div>In this case mp4 file is not playable. It contains packets with correct pts value, but dts value is zero for all packets.<br><br>ffprobe -show_packets video.mp4 | grep "\[PACKET\]\|pts=\|dts=" | head -n 48<br>ffprobe version 2.8.6 Copyright (c) 2007-2016 the FFmpeg developers<br>  built with gcc 4.9.3 (Gentoo 4.9.3 p1.5, pie-0.6.4)<br>  configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --enable-shared --cc=x86_64-pc-linux-gnu-gcc --cxx=x86_64-pc-linux-gnu-g++ --ar=x86_64-pc-linux-gnu-ar --optflags='-O2 -pipe' --disable-static --enable-avfilter --enable-avresample --disable-stripping --disable-indev=v4l2 --disable-outdev=v4l2 --disable-indev=oss --disable-indev=jack --disable-outdev=oss --disable-outdev=sdl --enable-bzlib --disable-runtime-cpudetect --disable-debug --disable-doc --disable-gnutls --enable-gpl --enable-hardcoded-tables --enable-iconv --disable-lzma --enable-network --disable-openssl --enable-postproc --disable-libsmbclient --disable-ffplay --disable-sdl --enable-vaapi --disable-vdpau --disable-xlib --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --enable-zlib --disable-libcdio --disable-libiec61883 --disable-libdc1394 --disable-libcaca --disable-openal --enable-opengl --disable-libv4l2 --disable-libpulse --disable-libopencore-amrwb --disable-libopencore-amrnb --disable-libfdk-aac --disable-libopenjpeg --disable-libbluray --disable-libcelt --disable-libgme --disable-libgsm --disable-libmodplug --disable-libopus --disable-libquvi --disable-librtmp --disable-libssh --disable-libschroedinger --disable-libspeex --disable-libvorbis --disable-libvpx --disable-libzvbi --disable-libbs2b --disable-libflite --disable-frei0r --disable-libfribidi --disable-fontconfig --disable-ladspa --disable-libass --disable-libfreetype --disable-libsoxr --enable-pthreads --disable-libvo-aacenc --disable-libvo-amrwbenc --disable-libmp3lame --disable-libaacplus --disable-libfaac --disable-libsnappy --disable-libtheora --disable-libtwolame --disable-libwavpack --disable-libwebp --disable-libx264 --disable-libx265 --disable-libxvid --disable-x11grab --disable-amd3dnow --disable-amd3dnowext --disable-fma4 --disable-xop<br>  libavutil      54. 31.100 / 54. 31.100<br>  libavcodec     56. 60.100 / 56. 60.100<br>  libavformat    56. 40.101 / 56. 40.101<br>  libavdevice    56.  4.100 / 56.  4.100<br>  libavfilter     5. 40.101 /  5. 40.101<br>  libavresample   2.  1.  0 /  2.  1.  0<br>  libswscale      3.  1.101 /  3.  1.101<br>  libswresample   1.  2.101 /  1.  2.101<br>  libpostproc    53.  3.100 / 53.  3.100<br>Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':<br>  Metadata:<br>    major_brand     : mp42<br>    minor_version   : 0<br>    compatible_brands: mp42mp41isomiso2<br>    creation_time   : 1970-01-01 01:24:58<br>  Duration: 00:00:00.00, start: 0.000000, bitrate: N/A<br>    Stream #0:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 640x480, 10k tbn, 20k tbc (default)<br>    Metadata:<br>      creation_time   : 1970-01-01 01:24:58<br>      handler_name    : VideoHandler<br>[PACKET]<br>pts=0<br>dts=0<br>[PACKET]<br>pts=5000<br>dts=0<br>[PACKET]<br>pts=5400<br>dts=0<br>[PACKET]<br>pts=5881<br>dts=0<br>[PACKET]<br>pts=6400<br>dts=0<br>[PACKET]<br>pts=6880<br>dts=0<br>[PACKET]<br>pts=7400<br>dts=0<br>[PACKET]<br>pts=7880<br>dts=0<br>[PACKET]<br>pts=8400<br>dts=0<br>[PACKET]<br>pts=8880<br>dts=0<br>[PACKET]<br>pts=9400<br>dts=0<br>[PACKET]<br>pts=9880<br>dts=0<br>[PACKET]<br>pts=10361<br>dts=0<br>[PACKET]<br>pts=10881<br>dts=0<br>[PACKET]<br>pts=11361<br>dts=0<br>[PACKET]<br>pts=11881<br>dts=0<br></div></div></div></div>