搜索 社区服务 统计排行 帮助
  • 10963阅读
  • 46回复

请问 avs 如何调用 ffdshow 进行反交错处理?

楼层直达
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 30楼 发表于: 2010-04-26
楼上没必要这么搞,分开编码后(输出什么格式都可以),直接用mmg的append功能合并就行了。需要转mp4的话再用我的那个ffmpeg就可以一步到位,不需要用mp4box。

ffmpeg的下载这里
级别: 新手上路
注册时间:
2005-06-30
在线时间:
1小时
发帖:
529
只看该作者 31楼 发表于: 2010-04-26
MP4BOX的话不用avi就可以了= =

级别: 新手上路
注册时间:
2009-02-03
在线时间:
0小时
发帖:
27
只看该作者 32楼 发表于: 2010-04-26
楼上能详细说一下么?我用:
引用
mp4box -chap Chapter.txt -cat 01.264 -cat 02.264 Video.mp4

还是不行,是不是还需要指定帧率什么的?
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 33楼 发表于: 2010-04-26
楼主用我的方法绝对没有问题的,输出mp4,mkv,flv都可以,mmg都吃的。ffmpeg也是什么都吃。
级别: 新手上路
注册时间:
2009-02-03
在线时间:
0小时
发帖:
27
只看该作者 34楼 发表于: 2010-04-26
引用
最初由 roozhou 发布
楼上没必要这么搞,分开编码后(输出什么格式都可以),直接用mmg的append功能合并就行了。需要转mp4的话再用我的那个ffmpeg就可以一步到位,不需要用mp4box。

ffmpeg的下载这里

谢谢。MediaInfo 显示 mmg append 后的帧率和第一个文件相同,不知道是否 append 成功。我去试试看 ffmpeg
级别: 新手上路
注册时间:
2009-02-03
在线时间:
0小时
发帖:
27
只看该作者 35楼 发表于: 2010-04-26
试用 ffmpeg -i inputfile outputfile,好像是需要转码的?能不能不重新编码,仅仅改变封装?
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 36楼 发表于: 2010-04-26
MediaInfo无法获取mkv的实际帧率,那个值可以随便写的,只要长度对就没问题了。

ffmpeg -i input -vcodec copy -acodec copy output即可,如果视频和音频分开的就用多个-i input

还有,不要用官方版本的,要用我编译的那个
级别: 新手上路
注册时间:
2009-02-03
在线时间:
0小时
发帖:
27
只看该作者 37楼 发表于: 2010-04-26
再次谢楼上,尝试了果然可以~

也想问一下官方的为什么不行呢?哪里不支持或会出错么?

读了后面的回复,因为本身对 ffmpeg 不熟,所以也不知道有什么区别……
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 38楼 发表于: 2010-04-26
官方版本不支持输入avc in mkv,即使mkv->mkv也不行。半年前我给出了解决方法,但是ffmpeg开发人员到现在也没采纳,所以我只能自己编译了。
级别: 新手上路
注册时间:
2009-02-03
在线时间:
0小时
发帖:
27
只看该作者 39楼 发表于: 2010-04-26
前面回帖时还不知道,去官方下了这个版本:FFmpeg-0.5.1-svn-22140,试用了一下好像也行,命令行如下:

ffmpeg -i 001.mkv -vcodec copy -acodec copy 001.mp4

提示如下:
引用
FFmpeg version SVN-r22140-Sherpya, Copyright (c) 2000-2010 the FFmpeg developers

built on Mar 2 2010 03:26:44 with gcc 4.2.5 20080919 (prerelease) [Sherpya]
libavutil 50. 9. 0 / 50. 9. 0
libavcodec52.55. 0 / 52.55. 0
libavformat 52.54. 0 / 52.54. 0
libavdevice 52. 2. 0 / 52. 2. 0
libavfilter1.17. 0 / 1.17. 0
libswscale 0.10. 0 / 0.10. 0
libpostproc 51. 2. 0 / 51. 2. 0
[matroska @ 0165bd70]Estimating duration from bitrate, this may be inaccurate

Seems stream 0 codec frame rate differs from container frame rate: 47.95 (48000/
1001) -> 24.00 (24/1)
Input #0, matroska, from '001.mkv':
Duration: 00:23:26.08, start: 0.000000, bitrate: N/A
Stream #0.0: Video: h264, yuv420p, 720x480 [PAR 40:33 DAR 20:11], PAR 97:80
DAR 291:160, 47.62 fps, 24 tbr, 1k tbn, 47.95 tbc
Stream #0.1: Audio: aac, 48000 Hz, stereo, s16
Output #0, mp4, to '001.mp4':
Metadata:
encoder : Lavf52.54.0
Stream #0.0: Video: libx264, yuv420p, 720x480 [PAR 97:80 DAR 291:160], q=2-3
1, 48k tbn, 23.98 tbc
Stream #0.1: Audio: aac, 48000 Hz, stereo
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Press [q] to stop encoding
frame= 3527 fps= 0 q=-1.0 size= 20168kB time=147.06 bitrate=1123.4kbits/s
frame= 7328 fps=7328 q=-1.0 size= 33630kB time=305.60 bitrate= 901.5kbits/s
frame=10830 fps=7220 q=-1.0 size= 48848kB time=451.66 bitrate= 886.0kbits/s
frame=14544 fps=7272 q=-1.0 size= 61478kB time=606.56 bitrate= 830.3kbits/s
frame=18223 fps=7289 q=-1.0 size= 74829kB time=760.01 bitrate= 806.6kbits/s
frame=21832 fps=7277 q=-1.0 size= 87657kB time=910.53 bitrate= 788.6kbits/s
frame=25437 fps=7268 q=-1.0 size= 100344kB time=1060.89 bitrate= 774.8kbits/s
frame=29100 fps=7275 q=-1.0 size= 116323kB time=1213.67 bitrate= 785.2kbits/s
frame=32567 fps=7237 q=-1.0 size= 136009kB time=1351.42 bitrate= 824.5kbits/s
frame=34202 fps=7170 q=-1.0 Lsize= 154707kB time=1405.98 bitrate= 901.4kbits/s

video:125386kB audio:28041kB global headers:0kB muxing overhead 0.834431%

提示的中间好像也有错误提示?不知道有没有影响。使用 MPC 和 WMP 播放都正常,播放过程中 Display Stats 也显示前面 23.976fps 后面 29.970fps。
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 40楼 发表于: 2010-04-26
MPC的确可以放,但是快进的时候你就会看出点问题。另外mplayer,vlc,还有PSP上都不能正常放,所以我也是等到PSP用户报告才发现这个bug的。
级别: 新手上路
注册时间:
2009-02-03
在线时间:
0小时
发帖:
27
只看该作者 41楼 发表于: 2010-04-27
非常感谢 roozhou 兄,这个方法挺简单好用,帮了我大忙!

同时也看到了 shin 的这帖:http://popgo.net/bbs/showthread.php?s=&threadid=462831,也想了解一下这个方法。

最开始的地方就没看懂:
引用
得到内嵌的好的X264 MP4 cfr,記為test.mp4

最开始准备处理的 mp4 cfr 片源的帧率应该是多少?像我手上已经有了 24fps 和 30fps 的两个 vob,应该如何准备这个待处理的 mp4 cfr 呢?
级别: 骑士
注册时间:
2007-01-31
在线时间:
62小时
发帖:
896
只看该作者 42楼 发表于: 2010-04-27
已经压好mp4了..还有什么待处理
写个timecode封装下就行了
级别: 新手上路
注册时间:
2009-02-03
在线时间:
0小时
发帖:
27
只看该作者 43楼 发表于: 2010-04-27
引用
最初由 264768502 发布
已经压好mp4了..还有什么待处理
写个timecode封装下就行了

就是看这个方法需要“一个”已经压好的 cfr mp4 和一个 timecode.txt,然后封装。

原帖说:
引用
來看一個典型的MP4 VFR製作

MKVFR的片源/120fps的片源

出於蛋疼,一定要弄個MP4VFR在谜之物体上放

首先要得到一个CFR的片源和timecode

那个 cfr 的片源是如何得到的?帧率是多少?

我就是还没弄懂那个用来和 timecode 封装的 mp4 文件是个什么东西,怎么得到的……
级别: 骑士
注册时间:
2007-01-31
在线时间:
62小时
发帖:
896
只看该作者 44楼 发表于: 2010-04-27
那个cfr随便写,反正最终播放的时候是根据timecode来的
timecode就是告诉播放器该以什么速率来播放流
timecode得到的方式有很多,但也要根据源的情况
如果源本来就是VFR的,那么可以找相关工具提取出timecode来
如果源是DVD这种cfr的,但成品却需要做成VFR的话,就要自己手写timecode(某些反交错滤镜也有提供输出timecode的功能)
快速回复

限150 字节
上一个 下一个