首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ffmpeg stream offset命令(-itsoffset)无法正常工作

ffmpeg stream offset命令(-itsoffset)无法正常工作
EN

Stack Overflow用户
提问于 2019-01-03 05:54:48
回答 2查看 0关注 0票数 0

如果有人可以就foffmpeg使用其偏移量给出一些指示,我将非常感激。我已经阅读了很多关于这个主题的帖子,其中一些非常清楚地解释了如何使用-itsoffset重新同步音频和视频,但我无法使其工作。我的avi文件使用ffmpeg编码,两次传递,使用以下命令进行第二次传递:

代码语言:javascript
复制
ffmpeg -i whole-vts_01.avs -pass 2 -y -vcodec libxvid -vtag XVID -b:v 1300K -g 240 -trellis 2 -mbd rd -flags +mv4+aic -acodec ac3 -ac 2 -ar 48000 -b:a 128k output.avi

无论出于何种原因,我最终会在视频中延迟1秒(或音频提前1秒)。它不会经常发生,但我不时会看到它。在其他尝试中,我尝试了以下方法:

代码语言:javascript
复制
(1) ffmpeg -i output.avi -itsoffset 00:00:01.0 -i output.avi -vcodec copy -acodec copy -map 0:0 -map 1:1 output-resynched.avi
(2) ffmpeg -i output.avi -itsoffset 00:00:01.0 -i output.ac3 -vcodec copy -acodec copy -map 0:0 -map 1:0 output-resynched2.avi
(3) ffmpeg -itsoffset -00:00:01.00 -i output.avi output-resynched8.avi
(4) ffmpeg -i output.avi -itsoffset -1.0 -i output.avi -vcodec copy -acodec copy -map 0:1 -map 1:0 output-resynched13.avi

结果如下:

  1. 音频乱码,只有5米35秒长,1小时41米。
  2. (Output.ac3是output.avi的音频组件)视频和音频与原始相同,偏移不起作用
  3. 音频确实被移位,但原始编码参数被默认编码参数替换(如预期的那样)。
  4. 音频乱码,长度仅为9米56秒,而1小时41米。

我看到许多人解释,显然使用上述过程,但它似乎并不适合我。我错过了一些明显的东西吗 我非常希望能够使用-itsoffset,因为它比我的解决方案更清晰。

FWIW,这是获得所需结果的另一种更长的方式:

首先使用-ss创建一个移位的视频文件:

代码语言:javascript
复制
ffmpeg -i output.avi -ss 1.0 -vcodec copy -an oupput_videoshifted.avi

然后提取音频:

代码语言:javascript
复制
ffmpeg -i output.avi -vn -acodec copy outputaudioonly.ac3

最后重新组合两个组件:

代码语言:javascript
复制
ffmpeg -i output_videoshifted.avi -i output_audioonly.ac3 -vcodec copy -acodec copy -map 0:0 -map 1:0 output-resynched14.avi

这个过程很快,但我真的更喜欢使用one pass -itsoffset解决方案。

EN

回答 2

Stack Overflow用户

发布于 2019-01-03 14:22:44

该问题位于-vcodec copy -acodec副本上,因为移位仅适用于关键帧。 我曾经也有过一样的问题。

只是不要复制(音频/)视频,尝试使用-itsoffset,但可以使用

-vcodec libxvid -vtag XVID -b:v 1300K -g 240 -trellis 2 -mbd rd -flags + mv4 + aic -acodec ac3 -ac 2 -ar 48000 -b:a 128k

用于重新编码。 它应该可以正常工作。

票数 0
EN

Stack Overflow用户

发布于 2019-01-03 15:52:06

这是我做的,它对我有用

第一个输入设置-i和第二个输入来自同一个视频文件。

第一个输入视频延迟1秒,第二个输入音频只复制一个

代码语言:javascript
复制
ffmpeg -y -itsoffset 00:00:01.000 -i "d:\Video1.mp4" -i "d:\Video1.mp4"
 -map 0:v -map 1:a -vcodec copy -acodec copy
 -f mp4 -threads 2 -v warning "Video2.mp4"

在第二个输入音频中延迟1秒,第一个输入视频只进行复制

代码语言:javascript
复制
ffmpeg -y -i "d:\Video1.mp4" -itsoffset 00:00:01.000 -i "d:\Video1.mp4"
 -map 0:v -map 1:a -vcodec copy -acodec copy
 -f mp4 -threads 2 -v warning "Video2.mp4"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档