2016-08-03 165 views
0

我想在使用Drawtext過濾器的視頻中標記時間戳。 012mFFmpeg很容易根據本地時間,gmtime甚至PTS標記時間戳。但是,我想爲時間戳分配一個參考時間(開始時間),以表示錄製視頻的時間(未編碼)。FFmpeg用於基於參考日期標記時間視頻

閱讀文檔,我發現選項「basetime」可用於此目的。然而,它似乎不工作,或者我失去了一些東西。

我使用的命令行是:

ffmpeg -y -i input.mp4 -filter_complex drawtext="fontfile=/tmp/UbuntuMono-B.ttf: fontsize=36: fontcolor=yellow: box=1: [email protected]: text='Wall Clock Time\: %{gmtime\:%Y-%m-%d %T}': basetime=1456007118" output.mp4 

通過使用basetime = 1456007118" ,它是預期的,因爲1456007118是開始時間被設置爲'02 /二千零十六分之二十○20點25分18' 秒UTC時間爲時間和日期:

date -d '02/20/2016 20:25:18' +"%s" # format MM/DD/AAAA hh:mm:ss 
1456007118 

但是,沒有錯誤是由FFmpeg的發行和視頻標有當前GMT,忽略「basetime」選項

任何暗示?謝謝。

約FFmpeg的版本和輸出的完整信息: ffmpeg -y -i /home/denio/Videos/Interstellar_2014_Trailer_4_5.1-1080p-HDTN.mp4 -filter_complex drawtext="fontfile=/tmp/UbuntuMono-B.ttf: fontsize=36: fontcolor=yellow: box=1: [email protected]: text='Wall Clock Time\: %{gmtime\:%Y-%m-%d %T}': basetime=1470226363" /tmp/x.mp4 ffmpeg version 3.1.1 Copyright (c) 2000-2016 the FFmpeg developers built with gcc 5.3.1 (Ubuntu 5.3.1-14ubuntu2.1) 20160413 configuration: --enable-libxavs --enable-bzlib --enable-libfaac --enable-libfreetype --enable-libfontconfig --enable-libmp3lame --enable-libschroedinger --enable-libspeex --enable-libvorbis --enable-libx264 --enable-libx265 --enable-libxvid --enable-zlib --enable-x11grab --enable-static --enable-pthreads --enable-gpl --enable-nonfree --enable-version3 --disable-ffserver --enable-libgsm --enable-librtmp --enable-libvpx --enable-libschroedinger --enable-libopencore-amrnb --enable-libopenjpeg libavutil 55. 28.100/55. 28.100 libavcodec 57. 48.101/57. 48.101 libavformat 57. 41.100/57. 41.100 libavdevice 57. 0.101/57. 0.101 libavfilter 6. 47.100/6. 47.100 libswscale 4. 1.100/4. 1.100 libswresample 2. 1.100/2. 1.100 libpostproc 54. 0.100/54. 0.100 ... ...

回答

1

我看到在源代碼中的basetime,但不是Web文檔中,所以不知道它是如何工作的。

您可以改用pts函數。

ffmpeg -y -i input.mp4 -vf "drawtext=fontfile=/tmp/UbuntuMono-B.ttf: 
          fontsize=36:fontcolor=yellow: 
          box=1:[email protected]: 
          text='Wall Clock Time\: %{pts\:gmtime\:1456007118}'" 
    output.mp4 

您可能需要使用的DrawText之前重置PTS(setpts=PTS-STARTPTS)。

+0

是的,它工作得很好。我在[https://ffmpeg.org/ffmpeg-filters.html#drawtext-1]閱讀文檔,我認爲我無法基於此做出結論。感謝您的幫助。 –