x264输出文件的后缀名可设为哪些?详细报告

 
本帖最后由 wmnmtm 于 2011-9-18 05:52 PM 编辑

X264命令到底可以把输出文件的后缀设为什么?

测试命令:x264 --crf 22 -o test.x hall_cif.yuv 352x288
操作系统:xp
版本:
x264.exe:$Id: x264.c,v 1.1 2004/06/03 19:24:12 fenrir Exp $libx264.lib:不会看,是x264-060805-vc6工程里的



后缀是否支持备注
.mp3支持,用ffplay播放正常支持,用ffplay播放正常
.mp4不支持,x264 [error]: not compiled with MP4 output support 
.mp5支持,用ffplay播放正常open_file_bsf(...)被调用
.mp6支持,用ffplay播放正常open_file_bsf(...)被调用
.mkv支持,用ffplay播放正常,用暴风影音播放正常open_file_mkv(...)被调用
.avi支持,用ffplay播放正常open_file_bsf(...)被调用
.txt支持,用ffplay播放正常open_file_bsf(...)被调用
.doc支持,用ffplay播放正常open_file_bsf(...)被调用
.rmv支持,用ffplay播放正常open_file_bsf(...)被调用
.rmvb支持,用ffplay播放正常open_file_bsf(...)被调用
.rar支持,用ffplay播放正常open_file_bsf(...)被调用
.china支持,用ffplay播放正常open_file_bsf(...)被调用
.cn支持,用ffplay播放正常open_file_bsf(...)被调用
.中国支持,用ffplay播放正常open_file_bsf(...)被调用
.com支持,用ffplay播放正常open_file_bsf(...)被调用
.1支持,用ffplay播放正常open_file_bsf(...)被调用
.exe支持,用ffplay播放正常open_file_bsf(...)被调用
.264支持,用ffplay播放正常open_file_bsf(...)被调用
.avc支持,用ffplay播放正常open_file_bsf(...)被调用



可以看出,除了特殊的mp4和mkv外,其它已知的后缀和未知的后缀,编码都被作为一种来处理了。两种生成的文件是不一样的。
如下:
         test.mkv 683 KB (699,747 字节)
         test.1、test.txt等,679 KB (695,328 字节)
生成的不同后缀的名字,图标受操作系统的规则显示,但是都可以用ffplay播放,包括中文的后缀名。
 




 
1.jpg
下载 (71.07 KB)
2011-9-18 04:04 PM
一个个播放了
2.jpg
下载 (57.45 KB)
2011-9-18 04:04 PM
test.mkv和test.264大小是有区别的
3.jpg
下载 (72.77 KB)
2011-9-18 04:04 PM
这个txt是不能双击用默认方法打开,用ffplay test.txt吧


以上是用最笨的办法来测试的,本质上,当然是源程序里的区别对待,下面尝试在源码中找到答案:
 



        


  1. ->main(...)
  2. ->Parse(...)
  3. {
  4. //这儿提前赋值了,不另外单独识别的,都用此处理
  5. p_open_outfile = open_file_bsf; /*函数指针赋值*/
  6. p_set_outfile_param = set_param_bsf; /*函数指针赋值*/
  7. p_write_nalu = write_nalu_bsf; /*函数指针赋值*/
  8. p_set_eop = set_eop_bsf; /*函数指针赋值*/
  9. p_close_outfile = close_file_bsf; /*函数指针赋值*/

  10. //mp4和mkv两种输出格式,单独进行了处理
  11. //mp4文件
  12. if( !strncasecmp(optarg + strlen(optarg) - 4, ".mp4", 4) ) /* strncasecmp:比较字符串s1和s2的前n个字符但不区分大小写 */
  13. {
  14. #ifdef MP4_OUTPUT
  15. p_open_outfile = open_file_mp4;//muxers.c
  16. p_write_nalu = write_nalu_mp4;
  17. p_set_outfile_param = set_param_mp4;
  18. p_set_eop = set_eop_mp4;
  19. p_close_outfile = close_file_mp4;
  20. printf("\n (x264.c\case 'o')");//zjh
  21. #else
  22. fprintf( stderr, "x264 [error]: not compiled with MP4 output support\n" );
  23. return -1;
  24. #endif
  25. }
  26. }
  27. //MKV文件
  28. else if( !strncasecmp(optarg + strlen(optarg) - 4, ".mkv", 4)
  29. {
  30. p_open_outfile = open_file_mkv;//muxers.c
  31. p_write_nalu = write_nalu_mkv;
  32. p_set_outfile_param = set_param_mkv;
  33. p_set_eop = set_eop_mkv;
  34. p_close_outfile = close_file_mkv;
  35. }
复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值