标签: codec

QTextCodec 子类 - 如何注册我的编解码器

我需要创建自己的编解码器,即QTextCodec. 我想通过使用它QTextCodec::codecForName("myname");
但是,只有子类是不够的。QTextCodec::availableCodecs()不包含我的编解码器名称。

QTextCodec 文档不涵盖自定义编解码器的正确注册区域:

创建您自己的编解码器类

通过创建 QTextCodec 子类,可以向 Qt 添加对新文本编码的支持。

纯虚函数向系统描述编码器,编码器根据需要在 QTextStream 支持的不同文本文件格式中使用,在 X11 下,用于特定于语言环境的字符输入和输出。

要为 Qt 添加对另一种编码的支持,请创建 QTextCodec 的子类并实现下表中列出的功能。
name()
aliases()
mibEnum()
convertToUnicode()
convertFromUnicode()

您可能会发现将编解码器类作为插件提供更方便;有关详细信息,请参阅如何创建 Qt 插件。

所以,我试图深入了解插件的方向。但我不想有一个单独的带有插件的项目。是否可以在同一个项目中声明插件?

或者有没有直接的方法可以将我的编解码器注册到 QTextCodec 中?这是优选的。

plugins encoding qt character-encoding codec

3
推荐指数
1
解决办法
1120
查看次数

二进制序列化协议

我有一个要求,我需要通过2个应用程序之间的线路(二进制over tcp)传输信息.一个是Java,另一个是C++.我需要一个协议实现来在这两个应用程序之间传输对象.Object类存在于两个应用程序中(相应地映射).我只需要在一侧保留一些编码方案,在一侧保留Object表示,并在另一侧解码为完整的Object.

例如,

C++类

class Person
{
   int age;
   string name;
};
Run Code Online (Sandbox Code Playgroud)

Java类

class Person
{
   int age;
   String name;
}
Run Code Online (Sandbox Code Playgroud)

C++编码

Person p;
p.age = 20;
p.name = "somename";
char[] arr = SomeProtocolEncoder.encode(p);
socket.send(arr);
Run Code Online (Sandbox Code Playgroud)

Java解码

byte[] arr = socket.read();
SomeProtocolIntermediateObject object = SomeProtocolDecoder.decode(arr);
Person p = (Person)ReflectionUtil.get(object);    
Run Code Online (Sandbox Code Playgroud)

协议应该提供一些维护对象表示状态的中间对象,以便使用反射我可以稍后返回对象.

java binary serialization codec

3
推荐指数
1
解决办法
3307
查看次数

网络的大多数便携式视频编解码器?

我正在寻找一种方法,可以在不使用Flash或Silverlight等插件的情况下在网页中嵌入视频.理想情况下,我能够<embed src="movie.ext">并期望在大多数浏览器中都能使用它.

我的目标是将视频编码为适用于IE7及更高版本,Chrome和Firefox的格式.但我需要知道哪种编解码器最便携.

不幸的是,需要支持IE7排除HTML5视频支持.

video html4 codec

3
推荐指数
1
解决办法
606
查看次数

再次:UnicodeEncodeError:ascii编解码器无法编码

我有一个XML文件的文件夹,我想解析.我需要从这些文件的元素中获取文本.它们将被收集并打印到CSV文件中,其中元素列在列中.

真正做到这一点的,现在一些我的文件.也就是说,对于我的许多XML文件,这个过程很顺利,我得到了我想要的输出.执行此操作的代码是:

import os, re, csv, string, operator
import xml.etree.cElementTree as ET
import codecs
def parseEO(doc):
    #getting the basic structure
    tree = ET.ElementTree(file=doc)
    root = tree.getroot()
    agencycodes = []
    rins = []
    titles =[]
    elements = [agencycodes, rins, titles]
    #pulling in the text from the fields
    for elem in tree.iter():
        if elem.tag == "AGENCY_CODE":
            agencycodes.append(int(elem.text))
        elif elem.tag == "RIN":
            rins.append(elem.text)
        elif elem.tag == "TITLE":
            titles.append(elem.text)
    with open('parsetest.csv', 'w') as f:
        writer = csv.writer(f)
        writer.writerows(zip(*elements))


parseEO('EO_file.xml')     
Run Code Online (Sandbox Code Playgroud)

但是,在某些版本的输入文件中,我得到了臭名昭着的错误: …

python ascii codec elementtree python-2.7

3
推荐指数
1
解决办法
7583
查看次数

有没有办法在WebRTC PeerConnection中选择编解码器?

嘿我想知道在WebRTC中创建商品/答案时是否有任何方法可以选择编解码器.目前没有多少视频编解码器可供选择,但有音频编解码器,如Opus,PCMU,PCMA等.

codec webrtc getusermedia

3
推荐指数
1
解决办法
4636
查看次数

Node.js:获取mp4文件的视频和音频格式信息

我是node.js的新手.我需要提取给定视频文件的音频和视频格式(编解码器)信息.我知道如何在bash中做到这一点,感谢mplayer这样:

$ mplayer -vo null -ao null -identify -frames 0 myvideo.mp4 2>/dev/null | grep FORMAT

ID_VIDEO_FORMAT=H264
ID_AUDIO_FORMAT=MP4A
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一个npm模块(库)允许我获取相同的信息.或者,我可以启动上面的命令格式node.js和read/parse stdout(我认为有很多例子).但是我宁愿使用node.js"native"解决方案.

javascript bash video codec node.js

3
推荐指数
1
解决办法
3295
查看次数

logstash(2.3.2)gzip编解码器不起作用

我正在使用logstash(2.3.2)通过使用gzip_lines编解码器来读取gz文件.日志文件示例(sample.log)是

127.0.0.2 - - [11/Dec/2013:00:01:45 -0800] "GET /xampp/status.php HTTP/1.1" 200 3891 "http://cadenza/xampp/navi.php" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:25.0) Gecko/20100101 Firefox/25.0"
Run Code Online (Sandbox Code Playgroud)

我用来附加到gz文件的命令是:

cat sample.log | gzip -c >> s.gz
Run Code Online (Sandbox Code Playgroud)

logstash.conf是

input { 
  file {
    path => "./logstash-2.3.2/bin/s.gz"
    codec => gzip_lines { charset => "ISO-8859-1"}
  }
}

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
    #match => { "message" => "message: %{GREEDYDATA}" }
  }
  #date {
  #  match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
  #}
} …
Run Code Online (Sandbox Code Playgroud)

plugins codec logstash

3
推荐指数
1
解决办法
2275
查看次数

MongoDB Scala驱动程序-呈现BSON文档

当前,我们正在使用一种类型安全的查询语言,该自定义DSL允许我们轻松编写数据库查询,这些查询将被解释并转换为Mongo查询。

我们最近从Casbah换成了新的Mongo Scala驱动程序,并改写了我们的翻译。但是,在处理可选值时遇到一些问题。

这是一个示例查询:

dao.headOption(Order.id === orderId.some)
Run Code Online (Sandbox Code Playgroud)

订单对象上存储的类型是一个选项,因此我们也将提供的ID提升为一个选项。但是,每当我尝试以以下方式呈现生成的查询以用于调试以及测试用例时:

import org.mongodb.scala.bson.{BsonDocument, codecs}

query.toBsonDocument(BsonDocument.getClass, codecs.DEFAULT_CODEC_REGISTRY)
Run Code Online (Sandbox Code Playgroud)

最终引发以下异常:

Can't find a codec for class scala.Some.
org.bson.codecs.configuration.CodecConfigurationException: Can't find a codec for class scala.Some.
Run Code Online (Sandbox Code Playgroud)

我不确定如何纠正此问题,或者不确定是否需要为Option实现我自己的编解码器,并且如果我这样做,我也不知道该怎么做。

任何帮助将不胜感激。先感谢您

更新资料

我已经看到我可以尝试实现编解码器接口,如下所示:

http://mongodb.github.io/mongo-java-driver/3.0/bson/codecs/

我是否需要为Option的每种可能的子类型实现它?

示例Option [Int],Option [UUID],Option [List [String]]等。

scala codec mongodb bson casbah

3
推荐指数
1
解决办法
1144
查看次数

使用ffmpeg连接2个文件时,在流#1中找不到编解码器pcm_alaw的标签,容器中当前不支持编解码器

我正在尝试连接两个文件,第一个包含音频和视频,而第二个仅包含视频。我使用以下ffmpeg命令:

ffmpeg_command = ["ffmpeg", "-f", "concat", "-safe", "0", "-i", "clips_to_join.txt", "-vcodec", "copy", "-acodec", "copy", output_file_path] # output_filename = ch0X-start_time-end_time
p = subprocess.Popen(ffmpeg_command)
p.communicate()
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / …
Run Code Online (Sandbox Code Playgroud)

audio video ffmpeg codec

3
推荐指数
1
解决办法
7138
查看次数

FFMPEG - “-ab”和“-b:a”之间的区别

据我所知,两个命令行参数都改变了音频比特率,但我不确定,因为我也看到了它们的组合。基本上我找不到任何解释这两个命令的文档。也可能是 -ab 被替换为 -b:a 但我不确定。

audio ffmpeg codec bitrate

3
推荐指数
1
解决办法
1505
查看次数