Post by Nicolas GeorgeAs you can see, this is the monotonic clock (and my uptime here is 16 days),
http://ffmpeg.org/ffmpeg-devices.html#video4linux2_002c-v4l2
I tried that, because I wanted to answer the question as well. It was
Post by Nicolas GeorgeWith that, you just need to do whatever you want with the timestamps. By
default, ffmpeg will normalize the timestamps before any filtering or
encoding, but you can disable that with the "-copyts" option.
I see the timestamp of the first frame "reset" to 0 - is that what you
mean with "normalize"?
From the description of the v4l2 device, I had expected the wallclock
to be copied to the timestamps (PTS, right?), but they began with 0 for
the first frame. I then tried to add
"-vf setpts=RTCSTART+PTS-STARTPTS"
but that was apparently a long shot - it didn't help.
So I added "-copyts", but again to no avail. The first frame always
shows:
pkt_pts=0
pkt_pts_time=0.000000
pkt_dts=0
pkt_dts_time=0.000000
best_effort_timestamp=0
best_effort_timestamp_time=0.000000
I was hoping to be able to hint the original poster to grab the start
time from the PTS of the first frame.
So: How to get wallclock timestamps into the video?
For reference, my attempt. (The input obviously has the correct
wallclock time: 1431981242.712328.)
$ ffmpeg -f v4l2 -input_format yuv420p -timestamps abs -i /dev/video1 -t 1 -c:v libx264 -copyts ~/tmp/video1.mkv -y
ffmpeg version 2.6.git Copyright (c) 2000-2015 the FFmpeg developers
built with icc (ICC) 14.0.3 20140422
configuration: --prefix=/usr/new/tools/video/install/ffmpeg/2015-05-11 --cc=icc --cxx=icpc --enable-gpl --enable-version3 --enable-nonfree --disable-shared --enable-gnutls --enable-libcdio --
enable-libfreetype --enable-libx264 --enable-libmp3lame --enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libass --enable-libv
4l2 --enable-libvidstab --enable-libfdk-aac --enable-libsmbclient --enable-libquvi --enable-libzvbi --enable-libzmq --extra-ldflags=-L/usr/new/tools/video/install/fdk-aac/current/lib --extra-cf
lags=-I/usr/new/tools/video/install/fdk-aac/current/include
libavutil 54. 23.101 / 54. 23.101
libavcodec 56. 38.100 / 56. 38.100
libavformat 56. 32.100 / 56. 32.100
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 16.101 / 5. 16.101
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
[video4linux2,v4l2 @ 0xa60bd00] Detected absolute timestamps
Input #0, video4linux2,v4l2, from '/dev/video1':
Duration: N/A, start: 1431981242.712328, bitrate: 124416 kb/s
Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 720x576, 124416 kb/s, 25 fps, 25 tbr, 1000k tbn, 1000k tbc
[libx264 @ 0xa60de20] using cpu capabilities: MMX2 SSE2 Cache64
[libx264 @ 0xa60de20] profile High, level 3.0
[libx264 @ 0xa60de20] 264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, matroska, to '/home/barsnick/tmp/video1.mkv':
Metadata:
encoder : Lavf56.32.100
Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuv420p, 720x576, q=-1--1, 25 fps, 1k tbn, 25 tbc
Metadata:
encoder : Lavc56.38.100 libx264
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[libx264 @ 0xa60de20] non-strictly-monotonic PTS
Last message repeated 12 times
[libx264 @ 0xa60de20] non-strictly-monotonic PTS0:00:00.00 bitrate=N/A
Last message repeated 10 times
frame= 24 fps=2.6 q=-1.0 Lsize= 2129kB time=-23860:55:45.88 bitrate=N/A
video:2128kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.039607%
[libx264 @ 0xa60de20] frame I:1 Avg QP:38.00 size: 90932
[libx264 @ 0xa60de20] frame P:23 Avg QP:38.00 size: 90753
[libx264 @ 0xa60de20] mb I I16..4: 0.0% 70.0% 30.0%
[libx264 @ 0xa60de20] mb P I16..4: 0.9% 85.8% 13.1% P16..4: 0.0% 0.1% 0.1% 0.0% 0.0% skip: 0.0%
[libx264 @ 0xa60de20] 8x8 transform intra:85.3% inter:65.0%
[libx264 @ 0xa60de20] coded y,uvDC,uvAC intra: 100.0% 0.0% 0.0% inter: 100.0% 0.0% 0.0%
[libx264 @ 0xa60de20] i16 v,h,dc,p: 0% 7% 81% 13%
[libx264 @ 0xa60de20] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 1% 42% 29% 2% 3% 2% 8% 2% 11%
[libx264 @ 0xa60de20] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 2% 34% 18% 5% 6% 3% 13% 3% 15%
[libx264 @ 0xa60de20] i8c dc,h,v,p: 100% 0% 0% 0%
[libx264 @ 0xa60de20] Weighted P-Frames: Y:4.3% UV:0.0%
[libx264 @ 0xa60de20] ref P L0: 34.2% 8.8% 32.1% 23.8% 1.2%
[libx264 @ 0xa60de20] kb/s:inf
Moritz