>>> a = "?" # chinese
>>> b = unicode(a,"gb2312")
>>> a.__class__
<type 'str'>
>>> b.__class__
<type 'unicode'> # b is unicode
>>> a
'\xce\xd2'
>>> b
u'\u6211'
>>> c = u"?"
>>> c.__class__
<type 'unicode'> # c is unicode
>>> c
u'\xce\xd2'
Run Code Online (Sandbox Code Playgroud)
b并且c都是unicode,但>>> b输出u'\u6211'和>>> c输出u'\xce\xd2',为什么?
AVCaptureVideoDataOutput有一个字段availableVideoCodecTypes,它应该告诉你可以用来录制视频的编解码器,但它总是空的.为什么是这样?
我在创建VideoDataOutput后立即检查了它的值,并在将其添加到会话后,但它是空的.我尝试使用运行iOS 10的iPhone 5s和运行iOS 11的iPhone 7 Plus,两者都是空的.
这个问题是关于AVCaptureVideoDataOutput.AVCaptureMovieFileOutput有另一个具有相同名称的字段,但是问题与此无关.
可以说VideoDataOutput为您提供帧而不是记录到文件,因此不涉及编解码器,这就是属性为零的原因,但在这种情况下,为什么要拥有该属性?
我有超过TB的家庭电影与可怕的文件名.找到你想要的东西是不可能的.我想将所有文件重命名为最初记录的时间(不是它们放在我的计算机上的文件时间).某些应用程序(如Ulead Video Studio)可以访问此信息,我认为这些信息嵌入在CODEC中.
我很乐意找到如何编写.Net应用程序以提取此信息以重命名我的文件,以便我可以轻松地组织它们或找到一个可以为我执行此操作的应用程序.非常感谢您的进步.
其他信息::家庭电影是在miniDV和DVD摄像机上拍摄的.
我知道JPEG压缩是有损的.我有两个问题:
给定操作T:
1.拍摄JPEG-80图像
2.将其解码为字节缓冲区
3.将给定的字节缓冲区编码为JPEG-80
在视觉质量方面,T是一种幂等的操作吗?或者,当我重复T时,图像的质量会不断降低?JPEG-XR编解码器也是如此吗?
谢谢!
编辑:由于答案存在冲突,如果您能提供参考,那就太棒了!
我知道在OpenCV中还有其他问题涉及FFmpeg的使用,但是大多数问题似乎已经过时了.
通过在CMake中打开makefile,我可以验证我已经WITH_FFMPEG开启了标志.我的OpenCV版本的输出文件夹包含一个bin文件夹,其中包含文件夹Debug和Release文件夹,每个文件夹都包含一个名为的.dll文件的副本opencv_ffmpeg244.dll.当我创建一个VideoWriter并验证指向.dll的函数指针是否正确填充时,我可以进入OpenCV的源代码.这似乎很有效.
如果我使用CV_FOURCC_PROMPT的FOURCC代码,则以下编解码器正常工作:
以下编解码器无法正常工作(即生成0kb视频文件):
如果我的理解是正确的,使用FFMPEG应该允许使用一大堆新的编解码器(x264,DIVX,XVID等)编码视频.但是,这些都不会出现在提示中.使用宏通过FOURCC代码手动设置它们CV_FOURCC(...)也不起作用.例如,使用此:CV_FOURCC('X','2','6','4')生成消息:
Could not find encoder for codec id 28: Encoder not found
并制作一个大小为0kb的视频文件.
使用此方法:不CV_FOURCC('X','V','I','D')产生任何错误消息,并生成6kb的视频文件,该文件无法在Windows Media Player或VLC中播放.
我尝试从Xvid.org手动下载Xvid编解码器.安装完成后,它会出现在提示符下的VFW选项下,并且编码正常.所以它接近一个解决方案,但如果我尝试直接设置FOURCC代码,它仍然会失败,如上所述!我每次都必须从提示中选择它.是不是FFmpeg应该包含一大堆编解码器?如果是这样,为什么我手动下载编解码器而不是使用FFmpeg内置的编解码器?
我在这里错过了什么?有没有办法检查FFMPEG是"启用"的?似乎提示中唯一可用的编解码器是VFW编解码器,而不是FFMPEG编解码器.在.dll已建成和正坐在同一文件夹中的可执行文件,但它似乎它不以任何方式使用.
这里有很多相关的问题.希望找到一些了解OpenCV中FFmpeg实现的人,并了解所有这些部分是如何组合在一起的.
我想将NSInputStream传递给MPMoviePlayerController,或MPMoviePlayerViewController,或其他任何东西.
输入流利用Apple框架不支持的协议.
我尝试创建一个自定义的NSURLProtocol(这种类型仅适用于设备(不是模拟器)),但是MediaPlayer尝试缓存所有内容并导致应用程序在分配250MB时崩溃.视频从不播放.
关于如何进行的任何想法?我知道有些应用程序会这样做.
我真的不想建立自己的媒体播放器,但似乎可能,不是吗?有没有关于如何仅使用CoreMedia而不是FFMPEG(等)的例子?编解码器选择对我来说并不重要 - 只是通过专有协议进行流式传输时的能力.
谢谢!
我有一个带有第一行unicode字符的文本文件和ASCII中的所有其他行.我尝试将第一行读作一个变量,将所有其他行读作另一个变量.但是,当我使用以下代码时:
# -*- coding: utf-8 -*-
import codecs
import os
filename = '1.txt'
f = codecs.open(filename, 'r3', encoding='utf-8')
print f
names_f = f.readline().split(' ')
data_f = f.readlines()
print len(names_f)
print len(data_f)
f.close()
print 'And now for something completely differerent:'
g = open(filename, 'r')
names_g = g.readline().split(' ')
print g
data_g = g.readlines()
print len(names_g)
print len(data_g)
g.close()
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
<open file '1.txt', mode 'rb' at 0x01235230>
28
7
And now for something completely differerent:
<open file '1.txt', mode 'r' at 0x017875A0> …Run Code Online (Sandbox Code Playgroud) 为什么它在某些文件上抛出此错误,而对于其他文件则不会?
这些文件都是 .mp4 视频。
'ValueError:MoviePy 找不到与文件名关联的编解码器。在 write_videofile 中提供“编解码器”参数。
# The videos on which we will work on (intro & a video)
intro = VideoFileClip('./videos/intro.mp4')
original = VideoFileClip('./videos/original_video.mp4')
# We cut 2s and crop the original video
original.cutout(0, 2)
original = vfx.crop(original, x1=10)
# Adding a watermark on top of the original video
watermark = (ImageClip("./images/watermark.png")
.set_duration(original.duration)
.set_position(("center","bottom"))
.resize(width=intro.w))
watermaked = CompositeVideoClip([original, watermark], size=original.size)
# Our final video: Intro + Waterkarmed, and output it.
final_render = concatenate_videoclips([intro, watermaked], method='compose')
final_render.write_videofile('./videos/output_video.mp4', …Run Code Online (Sandbox Code Playgroud) 我已经创建了一个简单脚本的.exe文件,打算在服务器上运行它。但是,我似乎无法弄清楚此故障的含义或在线找到任何答案。故障代码如下:
Fatal Python error: initfsencoding: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'
Current thread 0x00003c8c (most recent call first):
Run Code Online (Sandbox Code Playgroud)
为了做到这一点,我用了pyinstaller
pyinstaller --onefile MyScript.py
Run Code Online (Sandbox Code Playgroud)
当这不起作用时,我也尝试了
pyinstaller MyScript.py
Run Code Online (Sandbox Code Playgroud)
我在Windows 10,python 3.7的admin命令提示符下的C:\文件目录中运行。
我的sys.path是
['','C:\ Users \ user \ AppData \ Local \ Programs \ Python \ Python37-32 \ python37.zip','C:\ Users \ user \ AppData \ Local \ Programs \ Python \ Python37-32 \ DLLs ','C:\ Users \ user \ AppData \ Local \ Programs \ Python \ Python37-32 …
我看到关于这个主题有几个问题,但我仍然遇到错误。我想要做的就是将我库中的视频转换为 HEVC,这样它们占用的空间更少。
我试过这个:
ffmpeg -i input.mp4 -c:v libx265 output.mp4
Run Code Online (Sandbox Code Playgroud)
ffmpeg 似乎需要很长时间,输出似乎大小合适。该视频将使用 VLC 播放,但图标很奇怪,当我尝试使用 QuickTime 打开它时,出现错误:“无法打开文档“output.mov”。该文件与 QuickTime Player 不兼容。
我不想更改任何花哨的设置。我只希望文件占用更少的空间并且质量损失最小或没有。
谢谢!
编辑:无法保留我放入视频中的时间戳。
最初我在终端中使用 exiftool。但是,有时这不适用于视频,所以我会将它们空投到我的 iPhone,使用名为 Metapho 的应用程序更改日期,然后将它们空投回来。Exiftool 是创建的,但有时我就是无法工作。它会将日期更改为 1109212 Aug 2nd。奇怪的。最重要的是,当我进行这些转换时,我真的不想丢失其中的时间戳。
我在 .264 中加时间戳的原始文件
ffmpeg version 4.2.1 Copyright (c) 2000-2019 the FFmpeg developers
built with Apple clang version 11.0.0 (clang-1100.0.33.8)
configuration: --prefix=/usr/local/Cellar/ffmpeg/4.2.1_2 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags='-I/Library/Java/JavaVirtualMachines/adoptopenjdk-13.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/adoptopenjdk-13.jdk/Contents/Home/include/darwin -fno-stack-check' --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype …Run Code Online (Sandbox Code Playgroud)