我需要使用ffmpeg将audio文件转换为mp3。 当我写命令为ffmpeg -i audio.ogg -acodec mp3 newfile.mp3 ,我得到的错误: FFmpeg version 0.5.2, Copyright (c) 2000-2009 Fabrice Bellard, et al. configuration: libavutil 49.15. 0 / 49.15. 0 libavcodec 52.20. 1 / 52.20. 1 libavformat 52.31. 0 / 52.31. 0 libavdevice 52. 1. 0 / 52. 1. 0 built on Jun 24 2010 14:56:20, gcc: 4.4.1 Input #0, […]
有很多教程和内容展示了如何使用ffmpeg从video中提取多个屏幕截图。 你设置-r,你甚至可以开始一定的金额。 但是我只想要1张截图,例如01:23:45英寸,或者1张截图,86%英寸。 这是所有可能的ffmpegthumbnailer但它是另一个依赖我不想依靠。 我希望能够用ffmpeg来做到这一点。
我的目标是能够input一个单词的命令,并从USB连接的根源Nexus One截图。 到目前为止,我可以通过拉动它来获得我认为是32bit xRGB888原始图像的帧缓冲区: adb pull /dev/graphics/fb0 fb0 从那里,我很难得到它转换为PNG。 我试图用ffmpeg像这样: ffmpeg -vframes 1 -vcodec rawvideo -f rawvideo -pix_fmt rgb8888 -s 480×800 -i fb0 -f image2 -vcodec png image.png 这创造了一个可爱的紫色图像,其中有一些模糊的部分,但它绝不是一个干净的截图。
所以我知道它是一个相当大的挑战,但我想用c#编写一个基本的电影播放器/转换器使用FFmpeg库。 不过,我需要克服的第一个障碍是将FFmpeg库封装在c#中。 我已经下载了ffmpeg,但无法在Windows上编译,所以我为我下载了一个预编译版本。 好,真棒。 然后我开始寻找C#包装器。 我环顾四周,发现了一些包装,如SharpFFmpeg( http://sourceforge.net/projects/sharpffmpeg/ )和ffmpeg-sharp( http://code.google.com/p/ffmpeg-sharp/ )。 首先,我想用ffmpeg-sharp作为LGPL,SharpFFmpeg是GPL。 但是,它有很多编译错误。 原来它是为单声道编译器编写的,我尝试用单声道编译它,但不知道如何。 然后,我开始自己手动修复编译器错误,但遇到了一些可怕的错误,并认为我最好不要这些。 所以我放弃了ffmpeg-sharp。 然后,我看着SharpFFmpeg,它看起来像我想要的,所有的functionP /为我调用。 但是它的GPL? AVCodec.cs和AVFormat.cs文件看起来像avcodec.c和avformat.c的端口,我认为我可以移植自己? 那么不必担心授权。 但是在我开始编码之前,我想先弄清楚。 我是不是该: 编写我自己的C ++库,与ffmpeg进行交互,然后让我的C#程序和C ++库交谈,以便播放/转换video等。 要么 端口avcodec.h和avformat.h(是我所需要的?)通过使用一大堆的DllImports c#完全写在C#? 首先考虑到我对C ++并不擅长,因为我很less使用它,但是我知道足够了解。 我认为#1的原因可能是更好的select是,大多数FFmpeg教程是在C + +中,我也有更多的控制内存pipe理,如果我要在C#中做。 你怎么看? 你也会碰巧有任何有用的链接(也许是一个教程)使用FFmpeg?
我想使用GNU宽松通用公共许可证(GNU General Public License, GNU通用公共许可证(GPL)版本2)下的某个工具( ffmpeg )。 为此,我只能在我的软件中这样称呼它: System.Diagnostics.Process p = new System.Diagnostics.Process(); p.StartInfo = new System.Diagnostics.ProcessStartInfo("lgplSoftware.exe", myParams); p.Start(); 我不改变它,我只使用Windows的内置版本的软件。 维基百科说: 与GPL相关的一个重要争议是非GPL软件是否可以dynamic链接到GPL库。 GPL明确要求GPL下的所有衍生代码作品必须属于GPL。 虽然据了解,静态链接产生派生作品,但是不清楚dynamic链接到GPL代码的可执行文件是否应该被认为是派生作品(参见Weak Copyleft)。 免费/开源软件社区是分裂在这个问题上。 FSF声称,如果可执行代码和GPL代码“互相调用函数并共享数据结构”,那么这样的可执行文件确实是一个衍生工作,而某些人(例如Jerry Epplin)同意某些(例如Linus Torvalds)同意dynamic链接可以创build派生的作品,但不同意的情况。 所有这些法律事情让我感到困惑。 我也会把我的项目LGPL也发布出来,但是这不是我所能做到的。 所以问题是:我能像现在这样使用它,还是会被一大批律师执行?
目前我正在使用这个命令来提取图像: ffmpeg.exe -i 10fps.h264 -r 10 -f image2 10fps.h264_%03d.jpeg 但是,我怎样才能提高JPEG图像质量?
如何通过命令行或批处理脚本使用ffmpeg转换整个目录/文件夹?
有谁知道如何使用ffmpeg从video文件中获取总帧数? ffmpeg的渲染输出显示当前帧,我需要帧计数以百分比计算进度。
我正在尝试使用ffmpeg将文本字幕添加到.mp4容器中: ffmpeg -i input.mp4 -i input.srt -map 0.0 -map 0.1 -map 1.0 output.mp4 当我试图运行这条线,它给了我一个错误: stream映射的数量必须匹配输出stream的数量。 如果我尝试将mp4更改为mkv(尽pipemp4支持文本字幕),如下所示: ffmpeg -i input.mp4 -i input.srt -map 0.0 -map 0.1 -map 1.0 output.mkv 它正确映射的stream,但给出了一个错误: 未find输出stream#0.2的编码器(编解码器ID为94210) 当我启动 ffmpeg -codecs 我可以看到,srt编解码器被支持作为解码器和编码器,但是我不确定什么是用于mp4和mkv subs编码,以及是否需要打开或单独编译。
TL; DR 在iOS设备上使用FFmpeg编写片段时,我想将fMP4片段转换为TS片段(用于HLS)。 为什么? 我试图在iOS上实现实时上传,同时在本地维护一个无缝的高清副本。 我试过了 滚动AVAssetWriter s每个写8秒,然后通过FFmpeg将MP4连接在一起。 出了什么问题 – 有时audio和video中会出现闪烁的声音。 我已经确定了3个原因。 1)为由AAC编码器写入的audio起始帧创build间隙。 2)由于video帧长度为33.33ms,audio帧长度为0.022ms,因此在文件末尾可能不排队。 3)在Mac OS上缺less帧精确的编码,但不适用于iOS 细节 FFmpeg将一个只有MP4video的原始audio文件转换成TS段。 该工作基于Kickflip SDK 什么错了 – 每隔一段时间只有一个audio文件将上传,没有任何video。 永远不能在内部重现它,但是当我们的用户没有logging他们认为他们做了什么的时候,它是非常令人不快的。 在最后的细分市场上也存在着准确的寻找问题,就像TS细分市场的时间戳错误一样。 我现在在想什么 苹果公司今年(2016年)在WWDC上推出了fMP4,在此之前我没有多less关注过它。 由于fMP4文件可以被读取,并且在写入的时候被播放,所以我认为FFmpeg也可以在文件被写入的时候进行转码,只要我们不要发送字节到FFmpeg,直到每个片段该文件完成。 不过,我对FFmpeg C API不够熟悉,我在第二次尝试中只使用了它。 我需要你的东西 这是一个可行的解决scheme? 是否有人熟悉fMP4知道我能否真的做到这一点? 我将如何知道AVFoundation已经完成在文件中写入一个片段,以便我可以将其pipe理到FFmpeg? 我怎样才能从磁盘上的文件,一次一块,传递到FFmpeg,并吐出TS段?