FFmpeg segment滤镜分割ProRes视频后音视频不同步问题求助
Fix ProRes Video Segmentation Sync & Timecode Issues in QuickTime
Let's break down what's going wrong here and fix it step by step:
Root Causes
Looking at your metadata and updated Premiere details, two key issues are causing the sync problems and missing timecode:
- You're not copying the timecode track: Your original video has a dedicated
tmcd(timecode) track, but your initial command only copies video and audio streams (via implicit stream mapping). QuickTime relies on this track for proper sync and timing. - Mismatched time base: The output segments are using a different time base (
12288 tbnvs the original24 tbn), which throws off QuickTime's playback timing calculations. - Unspecified timecode parameters: The warning about "Valid timecode frame rate" happens because ffmpeg isn't explicitly told to carry over the timecode track's frame rate (24fps in your case).
Fixed Segmentation Command
Use this updated command to preserve all tracks, match the original time base, and fix the sync issues:
./ffmpeg -i video.mov -map 0 -codec copy -f segment -segment_time 300 -segment_list list.ffcat -reset_timestamps 1 -movflags +faststart -timecode 14:23:16:02 -v error chunk_%d.mov
Let's break down the critical additions:
-map 0: Copies all streams from the input video, including thetmcdtimecode track. This fixes the missing timecode issue you saw in Premiere.-movflags +faststart: Optimizes the MOV container structure for QuickTime, which helps with playback consistency.-timecode 14:23:16:02: Explicitly sets the starting timecode to match your original video, eliminating the timecode frame rate warning.- The rest of your parameters are retained since they're correct for segmenting without re-encoding.
Merging Segments Correctly
To ensure the merged video matches the original exactly, use this command with your segment list:
./ffmpeg -f concat -safe 0 -i list.ffcat -codec copy -movflags +faststart merged_video.mov
-f concat: Uses the concat demuxer to stitch segments without re-encoding.-safe 0: Allows the use of relative paths in yourlist.ffcatfile.
Verification Steps
After merging, confirm everything matches the original:
- Use
ffprobeto check for the timecode track:
Look for a stream labeledffprobe merged_video.movData: none (tmcd / 0x64636D74)to confirm the timecode track is present. - Check Premiere's properties again—you should see the same 1 timecode track, frame duration of 1/24th, and original ProRes quality settings.
- Test playback in QuickTime: Sync issues should be gone, and timecode should behave as expected.
Bonus: Update FFmpeg
If you're using an older version of FFmpeg on macOS, update it via Homebrew to ensure full ProRes and timecode support:
brew update && brew upgrade ffmpeg
内容的提问来源于stack exchange,提问作者r_jei
相关产品推荐
相关产品推荐

