标签: codec

我应该使用哪种音频编解码器?

我应该为我的C#软件开发项目选择哪种音频编解码器,其中要转码/传输/使用的原始音频基于以下内容:

  1. 仅用于编码语音
  2. 音频可以是立体声或单声道
  3. 能够支持直播
  4. 文件大小和质量之间的良好权衡
  5. 以编码形式通过TCP/IP传输
  6. 可由现成的免费播放器播放,无需进一步处理

注意,不需要考虑是否存在用于执行代码转换的随时可用的免费编解码器库.

c# audio tcp speech codec

5
推荐指数
2
解决办法
4396
查看次数

简单的逐帧视频解码器库

我正在寻找一个简单的 c/c++ 库,它允许将视频的第一帧提取为 uchar 数组。并有一个简单的功能来访问下一个。

我知道 FFMPEG,但它需要使用数据包和类似的东西,令我惊讶的是,在网上我找不到一个允许类似以下内容的库:

视频 v = openVideo("路径"); uchar* 数据 = v.getFrame(); v.nextFrame();

我只需要提取视频帧以将其用作纹理...之后不需要重新编码或任何其他操作...

当然,能够读取最多格式的东西会很棒,例如基于 libavcodec 构建的东西;p

我使用的是 Windows 7

谢谢!

c c++ video codec

5
推荐指数
1
解决办法
8716
查看次数

嵌入式设备的无损音频编解码器

我想通过无线电通道以 48K 速率(对应于每通道 768 Kbit 的 16 位样本)传输立体声音频流,并使用 Cortex-M3 微控制器将其馈送到 DAC。虽然该通道在技术上以 2 Mbit 工作,但范围会随着速度迅速下降,我想在一定程度上对其进行优化。

是否有任何无损音频编解码器可以在具有约 8K 内存的微控制器上工作,大约。20 MIPS 的处理能力、32 位硬件乘法器和没有硬件除数?我不需要很大的压缩比,但它应该正确处理流错误并且在播放中没有长时间的停顿。

embedded audio codec lossless

5
推荐指数
0
解决办法
6005
查看次数

android mediacodec:实时解码h264 nals

我正在尝试使用 android 低级媒体 api 实时解码 h264 nals。
每个 nal 都包含一个完整的帧,所以我希望在用我的 nal 输入输入并调用dequeueOutputBuffer它之后会“立即”(当然有一点延迟)显示我的帧,但它没有。我看到第一帧,出队仅在向解码器提供第二个缓冲区后才返回第一个缓冲区,第二个缓冲区此时应呈现第二个帧。帧使用 x264 的零延迟预设进行编码,因此没有 b 帧等...

我想可能有一种方法可以设置编码器在获得帧后立即渲染帧,但我找不到任何好的文档/解释。有什么建议吗?

media android real-time codec h.264

5
推荐指数
1
解决办法
2169
查看次数

如何在android中以编程方式执行命令行ffmpeg命令?

我已经使用Bambuser成功为 android 构建了 ffmpeg 。现在我必须构建一个示例转换器应用程序,例如 mp4 到 3gp。我知道有命令行命令ffmpeg -i video_origine.avi video_finale.mpg。但我不知道如何以编程方式执行这些命令。我有示例代码,例如

jint Java_com_example_ndklearning1_MainActivity_logFileInfo(JNIEnv * env, jobject this, jstring filename)
{
    av_register_all();

    AVFormatContext *pFormatCtx;
    const jbyte *str;
    str = (*env)->GetStringUTFChars(env, filename, NULL);

    if(av_open_input_file(&pFormatCtx, str, NULL, 0, NULL)!=0)
    {
        LOGE("Can't open file '%s'\n", str);
        return 1;
    }
    else
    {
        LOGI("File was opened\n");
        LOGI("File '%s', Codec %s",
            pFormatCtx->filename,
            pFormatCtx->iformat->name
        );

    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

此代码打开一个文件并提取编解码器信息。我想要的只是将打开的文件转换为所需的格式。任何类型的帮助(例如代码片段或遵循的步骤)都将受到高度赞赏。

ffmpeg API 可以满足我的目的吗?如果有现成的API可用的话会更有帮助

media android ffmpeg codec android-ndk

5
推荐指数
1
解决办法
3310
查看次数

使用 ffmpeg 将 wmv 转换为 mp4

我想使用 ffmpeg 将 wmv 文件转换为 mp4。视频细节 1920x1080,总码率 7978kbps,帧率 29 fps。图片幻灯片,无音频。它显示音频数据,但是当我创建 wmv 时没有禁用音频的选项。

ffmpeg -i input.wmv -c:v libx264 -crf 23 output.mp4
Run Code Online (Sandbox Code Playgroud)

我应该使用上面的命令还是有更好的设置来压缩视频而不损失图片质量?(因为它只是静态图像,动画只是帧之间的过渡效果)

video ffmpeg wmv codec

5
推荐指数
1
解决办法
2万
查看次数

是否可以使用 GLSL 着色器实现视频编解码器?

是否可以使用 GLSL 着色器实现视频编解码器,如果可行的话,它会比 CPU 编解码器更高效吗?

opengl video glsl codec h.264

5
推荐指数
1
解决办法
3284
查看次数

ffmpeg流rc缓冲区下溢

目前我正在使用开源工具 ffmpeg / ffserver 建立一个屏幕共享平台。分享之初一切都很好。大约 1 1/2 分钟后,我在输出中得到以下异常。

[flv @ 0x3a47aa0] rc buffer underflow [flv @ 0x3a47aa0] max bitrate possibly too small or try trellis with large lmax or increase qmax

我尝试设置非常高的 lmax 和 qmax,但这并没有改变任何事情。此外,我尝试增加比特率、缓冲区大小和比特率。

我在 ffmpeg 中使用以下命令:

ffmpeg -f x11grab -s 1920x1080 -r 20 -i :0.0+1680,0 "http://localserver.de:8080/input1.ffm"
Run Code Online (Sandbox Code Playgroud)

ffserver 的配置文件是:

HTTPPort 8080
HTTPBindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 50000
CustomLog -

<Feed input1.ffm>
  File /var/ffserver/input1.ffm
  FileMaxSize 20M
  ACL allow *FROM IP*  *TO IP* 
</Feed>

<Stream screen1.swf>
  Feed input1.ffm
  Format …
Run Code Online (Sandbox Code Playgroud)

ffmpeg stream codec ffserver

5
推荐指数
0
解决办法
4575
查看次数

在 Chrome 上捕获的 MediaRecorder 无法在移动设备或 Safari 上播放

目标:使用 MediaRecorder(或其他)api 生成可跨平台查看的视频文件。

失败:当前 api 回退到 google chrome 上的容器/编解码器,只能在 chrome 和高级桌面媒体播放器上查看,而不能在 Safari 或移动设备上查看。

!在 safari 上运行时相同的代码会在所有平台上生成一个工作视频文件。

    const mimeType = 'video/webm;codecs=H264'
    rec = new MediaRecorder(stream.current, { mimeType })
    rec.ondataavailable = e => blobs.push(e.data)
    rec.onstop = async () => {
      saveToFile(new Blob(blobs, { type: mimeType }))
    }

Run Code Online (Sandbox Code Playgroud)

尝试了所有不同的容器和编解码器组合。还尝试用 MP4 文件容器覆盖 Blob 的 mimeType。从来没有成功过。

也试过:

https://github.com/streamproc/MediaStreamRecorder

https://github.com/muaz-khan/RecordRTC

同样的问题。我似乎 chrome 的容器/编解码器组合总是退回到只能在 chrome 或像 vlc 这样强大的桌面视频播放器上开箱即用的格式。

在此处输入图片说明

对我来说唯一的跨平台工作视频是从 safari 浏览器中截取的,是上图左起第 5 个。

在 MediaCapture api 中使用什么正确的容器/codac 以使输出文件可跨平台播放。

编辑 -

我们最终使用 AWS ElasticTranscoder 构建了一个转码管道,它获取上传的视频并使用可在所有平台上播放的通用预设对其进行转码,从而创建转换后的视频文件。

  • 不幸的是,我提供的赏金已过期,但如果有人回答了最初的问题,我很乐意再次用赏金奖励他。

mp4 google-chrome codec webrtc web-mediarecorder

5
推荐指数
1
解决办法
1089
查看次数

基于 Electron 框架 (libffmpeg) 的运输应用程序中的法律问题

我们正在电子 v 12.0.7 上构建和部署基于桌面的应用程序。它将是一个(免费)商业软件,部署到全球约 2-3 百万用户。最近,我们的法律团队询问了与 Chromium 捆绑在一起的专有编解码器,我认为确认这一点的最佳方法是联系这里。

因此,以下是我需要帮助的具体事项:

  1. 我们是否使用专有编解码器运送铬?如果是,那么在与电子 v 12.0.7 捆绑的铬中默认出现的潜在有争议的编解码器是什么?

  2. 是否有关于电子团队如何构建铬(带有哪些标志)的文档?

  3. 默认的 libffmpeg.dylib/dll 是否与电子构建 ffmpeg 捆绑在一起,支持 H.264 和 MP3 编解码器之类的东西?

  4. 我注意到每个电子版本都有 libffmpeg 二进制文件,例如https://github.com/electron/electron/releases/download/v12.0.7/ffmpeg-v12.0.7-darwin-arm64.zip。这个二进制文件的目的是什么?

任何帮助,将不胜感激。

ffmpeg codec electron

5
推荐指数
1
解决办法
157
查看次数