syncnet_python icon indicating copy to clipboard operation
syncnet_python copied to clipboard

issue to fix the offset

Open EhsanRusta opened this issue 2 years ago • 9 comments

I'm trying to remove the offset of a video, the offset is -15 and use the following command to shift the video, " ffmpeg -y -i temp.mp4 -itsoffset -0.5 -i newtemp.mp4 -ss -0.5 -t 9.2 -map 0:v -map 1:a new0.mp4 " but new video has offset equal to 8! I don't know waht is the issue, should I change anything else? the FPS has changed to 25

EhsanRusta avatar Oct 31 '22 07:10 EhsanRusta

@EhsanRusta What's the FPS of the original video? You should specify -itsoffset OFFSET/FPS where FPS is the original video's FPS I guess

ashok-arjun avatar Dec 20 '22 12:12 ashok-arjun

@EhsanRusta What's the FPS of the original video? You should specify -itsoffset OFFSET/FPS where FPS is the original video's FPS I guess

still the offset of the corrected video is not close to 1

devsvarun avatar Dec 22 '22 12:12 devsvarun

First, you should get the original FPS for each video. And then, synchronize video according to its AV OFFSET:

  1. when av offset is positive: ffmpeg -i input.mp4 -itsoffset abs(OFFSET)/FPS -i input.mp4 -map 0:v -map 1:a -c copy output.mp4

  2. when av offset is negative: ffmpeg -i input.mp4 -itsoffset abs(OFFSET)/FPS -i input.mp4 -map 1:v -map 0:a -c copy -t video_len-abs(OFFSET)/FPS output.mp4

After doing this, OFFSET for the new video will be 0. But i only test on few videos.

Referring to https://superuser.com/a/983153

WudiJoey avatar Nov 03 '23 11:11 WudiJoey

2. -t video_len-abs(OFFSET)/FPS

Why aren’t they all video_len-abs(OFFSET)/FPS?

tailangjun avatar Dec 28 '23 12:12 tailangjun

您好,您的来信我已经收到,会尽快回复。  

WudiJoey avatar Dec 28 '23 12:12 WudiJoey

您好,您的来信我已经收到,会尽快回复。

多谢兄弟,我是想问为啥一个时长不变,一个变成 video_len-abs(OFFSET)/FPS了

tailangjun avatar Dec 28 '23 12:12 tailangjun

您好,您的来信我已经收到,会尽快回复。

多谢兄弟,我是想问为啥一个时长不变,一个变成 video_len-abs(OFFSET)/FPS了

嗷这里是考虑到音频提前之后视频会有一部分没有声音就裁掉了,我想了一下实际上应该同时对校正后视频的头尾进行裁剪,如果你的offset是几秒的话得到的视频前几秒是【卡顿有声音】或者【画面在动但是无声音】 但是当你的offset就几帧的前提下没有太大影响,offset超过几秒的话有时候那个视频本身就对不上音频和唇形

WudiJoey avatar Jan 03 '24 07:01 WudiJoey

First, you should get the original FPS for each video. And then, synchronize video according to its AV OFFSET:

  1. when av offset is positive: ffmpeg -i input.mp4 -itsoffset abs(OFFSET)/FPS -i input.mp4 -map 0:v -map 1:a -c copy output.mp4
  2. when av offset is negative: ffmpeg -i input.mp4 -itsoffset abs(OFFSET)/FPS -i input.mp4 -map 1:v -map 0:a -c copy -t video_len-abs(OFFSET)/FPS output.mp4

After doing this, OFFSET for the new video will be 0. But i only test on few videos.

Referring to https://superuser.com/a/983153

谢谢,好人一生平安

prometheus-alien avatar Jan 31 '24 13:01 prometheus-alien

您好,您的来信我已经收到,会尽快回复。

多谢兄弟,我是想问为啥一个时长不变,一个变成 video_len-abs(OFFSET)/FPS了

嗷这里是考虑到音频提前之后视频会有一部分没有声音就裁掉了,我想了一下实际上应该同时对校正后视频的头尾进行裁剪,如果你的offset是几秒的话得到的视频前几秒是【卡顿有声音】或者【画面在动但是无声音】 但是当你的offset就几帧的前提下没有太大影响,offset超过几秒的话有时候那个视频本身就对不上音频和唇形

谢谢子华兄

prometheus-alien avatar Feb 01 '24 03:02 prometheus-alien