0

trying to capture a capture card with FFmpeg at 60000/1001 (59.94) FPS. Everything seems to work fine until I drag the file into another program like Adobe Premiere, it can't seem to tell that the video is a drop-frame timecode.

When I probe the video ffprobe -i [input] -show_streams it says timecode=N/A, how do I inject the proper timecode into the metadata of the file upon recording? Am I even understanding this correctly? It's just when I drag the video into Premiere and "create sequence from clip" it auto sets the timecode to 59.94 non-drop frame which will obviously be a problem for A/V sync. I can manually change the timecode of the sequence but I'd much prefer it just pull that from the file somehow.

Command I'm using to record:

ffmpeg -y -hide_banner `
-thread_queue_size 9999 -indexmem 9999 -f dshow -rtbufsize 2147.48M -video_size 3840x2160 -framerate 60000/1001 `
-pixel_format yuyv422 -i video="AVerMedia HD Capture GC573 1":audio="SPDIF/ADAT (1+2) (RME Fireface UC)" `
-map 0:0,0:1 -map 0:1 -c:v h264_nvenc -preset: hp -r 60000/1001 -rc-lookahead 120 `
-pix_fmt yuv420p -b:v 288M -minrate 288M -maxrate 288M -bufsize 288M -c:a aac -ar 44100 -b:a 320k `
-af "aresample=async=250" -max_muxing_queue_size 9999 `
C:\Users\djcim\Videos\FFmpeg\AM\AM.mov
1

I don't know how Premiere specifically works but the timecode is not the same as the project framerate. The timecode is just a label assigned to frames to indicate their timestamp in HH:MM:SS;FF form. Because timecode consists of integer elements, they can't accurately maintain correspondence with actual frame count in a stream with a fractional framerate. If uncorrected, this creates an expanding drift with the actual timestamp of frames. So, drop-frame timecode was invented to skip some timecode labels at regular intervals, so the drift is periodically reduced (but rarely made zero).

Premiere should internally maintain accurate time intervals between frames, regardless of the labelling scheme. Nonetheless, in order to attach a timecode stream to the output, you can add -timecode 00:00:00;00 to your command.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.