我正在尝试创建一个Python脚本:
这似乎并不太难,但我吮吸python :)
关于脚本应该是什么样子的任何想法?
奖金问题:我应该使用
使用os.system
要么
subprocess.call
?
Subprocess.call似乎允许更易读的脚本,因为我可以像这样编写命令:
cmdLine = ['mencoder',sourceVideo,' - ov','copy',' - oac','copy',' - s','00:02:54',' - endpos','00:00: 54',' - o',destinationVideo]
编辑:好的,这有效:
import os, subprocess
bitrate = '100'
mencoder = 'C:\\Program Files\\_utilitaires\\MPlayer-1.0rc2\\mencoder.exe'
inputdir = 'C:\\Documents and Settings\\Administrator\\Desktop\\input'
outputdir = 'C:\\Documents and Settings\\Administrator\\Desktop\\output'
for fichier in os.listdir(inputdir):
print 'fichier :' + fichier
sourceVideo = inputdir + '\\' + fichier
destinationVideo = outputdir + '\\' + fichier[:-4] + ".mp4"
commande = [mencoder,
'-of',
'lavf',
[...] …Run Code Online (Sandbox Code Playgroud) 这是感兴趣的视频的mplayer输出:
br@carina:/tmp$ mplayer foo.mov
mplayer: Symbol `ff_codec_bmp_tags' has different size in shared object, consider re-linking
MPlayer 1.0rc4-4.5.2 (C) 2000-2010 MPlayer Team
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.
Playing foo.mov.
libavformat file format detected.
[lavf] stream 0: video (h264), -vid 0
[lavf] stream 1: audio (aac), -aid 0, -alang eng
VIDEO: [H264] 1280x720 24bpp 59.940 fps 2494.2 kbps (304.5 kbyte/s) …Run Code Online (Sandbox Code Playgroud) 我想抓住最后一帧的视频(.mpg,.avi,等等),并转储到一个图像文件(.jpg,.png,等等).工具链是一个现代的Linux 命令行,所以像mencoder,transcode,ffmpeg&C.
干杯,鲍勃.
任何人都可以通过编码速度比较流行的视频编解码器?我知道通常更好的压缩需要更多的处理时间,但也有可能一些编解码器仍然通过快速编码提供相对较好的压缩.任何比较链接?
谢谢你的帮助
[编辑]:编解码器可以通过使用的算法进行比较,无论其具体实现,使用的硬件或视频源,如数学算法的大O
我希望我的网站加入FLV文件中的一些网络摄像头录像(就像这个).这需要在没有用户输入的情况下在Linux上完成.我该怎么做呢?为了简单起见,我将使用相同的flv作为两个输入,希望获得连续两次播放相同内容的flv.
这应该很容易,对吧?ffmpeg FAQ中甚至还有一个完整的代码示例.
好吧,管道似乎给我带来了问题(在我的运行Leopard和Ubuntu 8.04的mac上)所以让我们保持简单并使用普通文件.此外,如果我没有指定15 fps的速率,视觉部分播放速度非常快.因此示例脚本变为:
ffmpeg -i input.flv -vn -f u16le -acodec pcm_s16le -ac 2 -ar 44100 \
- > temp.a < /dev/null
ffmpeg -i input.flv -an -f yuv4mpegpipe - > temp.v < /dev/null
cat temp.v temp.v > all.v
cat temp.a temp.a > all.a
ffmpeg -f u16le -acodec pcm_s16le -ac 2 -ar 44100 -i all.a \
-f yuv4mpegpipe -i all.v -sameq -y output.flv
Run Code Online (Sandbox Code Playgroud)
好吧,使用它可以用于音频,但我只是第一次看到视频.这似乎是我输入的任何flv作为input.flv,包括red5附带的电影剧本.
a)为什么示例脚本不像宣传的那样工作,特别是为什么我没有得到我期待的所有视频?
b)为什么我必须指定帧率,而Wimpy播放器可以以正确的速度播放flv?
我发现加入两个flv的唯一方法是使用mencoder.问题是,mencoder似乎没有加入flvs:
mencoder input.flv input.flv -o output.flv -of lavf -oac …Run Code Online (Sandbox Code Playgroud) 所以,这应该是对这个帖子的评论,但它显然已经关闭了,所以就这样了.我已经用matplotlib和numpy和mencoder成功地玩了,正如这里所建议的那样.我已经采用了Voki Codder缓冲区到stdin解决方案,这大大加快了整个过程.问题是,我在命令的-format ="bgra"部分找不到任何文档.这意味着字节是从右到左的蓝绿色红色alpha,右边.他们必须是uint32,或其他什么.问题是我正在绘制花车的彩色图,所以我试图将它们转换为灰度,但是我得到了许多奇怪的模式让我坚信我做错了什么.我写了这个函数来从一个范围内的浮点数转换为uint32.但结果并不是我预期的原因,我做了一件非常愚蠢的事情吗?
def grayscale(x, min, max):
return np.uint32((x-min)/(max-min)*0xffffff)
Run Code Online (Sandbox Code Playgroud) 我似乎无法将图像提取到特定目录中.
我正在运行的当前命令是
mplayer -vo jpeg CustomLogoAni.mp4
Run Code Online (Sandbox Code Playgroud)
是否也可以设置文件的前缀?与ffmpeg%d.jpg相似
组合图像时,我运行命令:
mencoder "mf://*.jpg" -ovc x264 -o output.avi
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
有人可以帮忙吗?
我正在尝试构建一个应用程序以在视频上刻录字幕。要执行的特定任务是刻录波斯语(从右到左语言)字幕。但是我有一个问题。
当我同时听到几个单词而它们之间没有任何“回车”时,则将ffmpeg或mencoder向上推。例如,如果我有三行,则第三行出现在第一行,然后是第二行,然后第一行显示在屏幕上。
我附上了两个屏幕截图,以使其清晰可见。正如您在第二篇中可能看到的那样,波斯语字幕有9行,该行应从顶部的1到底部的9对齐,但是第9行出现在顶部的第一行。


我目前正在使用此代码在mp4视频上刻录字幕:
mencoder video.mp4 -sub subtitle.srt -utf8 -o output.mp4 -oac pcm -ovc lavc
Run Code Online (Sandbox Code Playgroud) 好吧,似乎每当我告诉ffmpeg采用屏幕上半部分虽然剪辑(剪辑可能长达10小时)它使用100%的1 cpu核心并且需要很长时间...而如果我让它做一个框架在开始它真的很快,好像它扫描通过视频到达中间,而不是只是跳到它!
这是我目前正在使用的代码:
ffmpeg -y -itsoffset -“500" -i “clipname.mov" -vcodec png -vframes 1 -an -f rawvideo “clipScreenshot001.png”
Run Code Online (Sandbox Code Playgroud)
这可能需要几分钟.
这些也是高清视频,720p/1080p,并且它们是原始未经编辑的剪辑(例如很长).
所以我希望有一些更好的软件可以让视频的屏幕捕获速度更快(必须是linux和可编写脚本的).
白天,我每分钟都会从相机中拍照。我想从图像中制作视频。1 天 -> 1 个视频
我在一天结束时使用 mencoder 这样做: mencoder "mf://*.jpg" -mf fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vbitrate=7000 -vf scale=1024:768 -oac copy -o movie.avi 它工作正常,但是:
问题是我需要在 Raspberry Pi(700MHz ARM)上做这件事,他需要大约一个小时才能从白天拍摄的 1500 张照片中制作视频(它的工作速度约为 0.5 fps)。
有什么办法可以“连续”制作视频——如何在每张照片拍摄后立即将其传递给mencoder——并在每天午夜停止制作视频?然后它会拍一张照片,处理 2-3 秒,然后再等一分钟再做一次。
谢谢。
我想以每个二十 (20) 的批量大小合并视频。我正在运行一台 Linux 机器。视频为 mp4 格式,质量中等。有些甚至丢失了音频流。到目前为止,我已经尝试过 ffmpeg、mencoder、cvlc/vlc 和 MP4Box。我想编写一个命令行脚本来实现此目的,因为我正在进行批处理。
主要问题是,我尝试的一些解决方案适用于两个视频,一些适用于带有音频流的视频,而另一些则适用于我的视频集的其他子集。但是,我一直无法找到完成这项任务的全面解决方案。
我正在尝试使用以下(mencoder)命令将mp4或3gp视频文件转换为Flash(flv)格式(使用Perl脚本):
mencoder test.mp4 -of lavf -ovc lavc -lavcopts vcodec=flv:vbitrate=1000:mbd=2 -fps 20.80 -ofps 20.80 -oac mp3lame -lameopts abr:br=32 -srate 22050 -o test.flv
Run Code Online (Sandbox Code Playgroud)
它运行正常,但是一些来自手机附件的文件有问题,转换后的FLV文件只有音频.
我还使用了ffmpeg命令如下:
ffmpeg -i test.mp4 -ar 22050 -acodec libmp3lame -ab 32K -r 25 -vcodec flv test.flv
Run Code Online (Sandbox Code Playgroud)
这个ffmpeg命令有助于转换为失败的flv mencoder.
我在想一些解决方案,需要检查转换后的flv是否有音频和视频然后才会采取行动取决于它.你能帮我解决这个问题吗?
这是一些更多的信息(日志):
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xb6b9a3a0]多个编辑列表条目,可能发生a/v desync,修补程序欢迎**MUXER_LAVF ************************************* 记住:MEncoder的libavformat muxing目前已被破坏,可以在B帧存在的情况下生成INCORRECT文件.而且,由于错误,MPlayer会播放这些INCORRECT文件,好像什么都没有错!
不受支持的PixelFormat 61不支持的PixelFormat 53不支持的PixelFormat 81 [flv @ 0xb6b9a3a0]流0的编解码器不使用全局头,但容器格式需要全局头[flv @ …
ffmpeg mencoder video-capture video-streaming audio-streaming
mencoder ×13
ffmpeg ×10
video ×3
linux ×2
mplayer ×2
python ×2
transcoding ×2
codec ×1
farsi ×1
flash ×1
foreach ×1
imagemagick ×1
matplotlib ×1
numpy ×1
subtitle ×1
ubuntu ×1
video-codecs ×1
webcam ×1