- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 FFMPEG 从管道输入录制视频。管道输入采用 WebM 格式,即视频编解码器为 VP8,音频编解码器为 OPUS。我可以使用 FFMPEG 以 WebM 格式保存输出视频,没有任何问题。但是当我尝试将其保存为 MP4 格式时,我没有得到所需的输出。虽然保存时没有错误,但输出文件显示错误,描述为“此文件不包含可播放的流!”。
这些是以 WebM 格式成功录制的选项。
'-loglevel', 'debug', '-protocol_whitelist', 'pipe,udp,rtp',
'-fflags', '+genpts', '-i', 'pipe:0', '-map', '0:v:0', '-c:v',
'copy', '-map', '0:a:0', '-strict', '-2', '-c:a', 'copy', '-flags',
'+global_header', '-f', 'webm', 'output.webm'
这是我以 MP4 格式录制的 ffmpeg 选项。
'-thread_queue_size', '4096', '-r', '25', '-i', 'pipe:0',
'-c:v', 'libx264', '-preset', 'veryFast', '-pix_fmt', 'yuvj420p',
'-acodec', 'aac', "output.mp4"
将此命令作为子进程执行后的控制台输出
> ffmpeg::process::data [data:' libavutil 56. 31.100 / 56.
31.100\n' + ' libavcodec 58. 54.100 / 58. 54.100\n' + '
libavformat 58. 29.100 / 58. 29.100\n' + ' libavdevice 58.
8.100 / 58. 8.100\n' + ' libavfilter 7. 57.100 / 7. 57.100\n'
+ ' libavresample 4. 0. 0 / 4. 0. 0\n' + ' libswscale
5. 5.100 / 5. 5.100\n' + ' libswresample 3. 5.100 / 3.
5.100\n' + ' libpostproc 55. 5.100 / 55. 5.100\n'] +1ms
>
> ffmpeg ffmpeg::process::data [data:"Input #0, matroska,webm, from
> 'pipe:0':\n" + ' Metadata:\n' + ' encoder : Chrome\n' + '
> Duration: N/A, start: 0.000000, bitrate: N/A\n' + ' Stream
> #0:0(eng): Audio: opus, 48000 Hz, stereo, fltp (default)\n' + '
Stream #0:1(eng): Video: vp8, yuv420p(progressive), 1920x950, SAR 1:1
> DAR 192:95, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)\n' + '
> Metadata:\n' + ' alpha_mode : 1\n'] +1s
>
>
> ffmpeg::process::data [data:'Stream mapping:\n' + ' Stream #0:1 ->
> #0:0 (vp8 (native) -> h264 (libx264))\n' + ' Stream #0:0 -> #0:1
(opus (native) -> aac (native))\n'] +1ms
>
> ffmpeg::process::data [data:'[swscaler @ 0x55a63050ddc0] deprecated
> pixel format used, make sure you did set range correctly\n'] +23ms
>
> ffmpeg::process::data [data:'[libx264 @ 0x55a630489980] using
> SAR=1/1\n'] +10ms
>
> ffmpeg::process::data [data:'[libx264 @ 0x55a630489980] using cpu
> capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2\n'] +0ms
>
> ffmpeg::process::data [data:'[libx264 @ 0x55a630489980] profile
> High, level 4.0\n'] +8ms
>
> ffmpeg::process::data [data:'[libx264 @ 0x55a630489980] 264 - core
> 155 r2917 0a84d98 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 -
> http://www.videolan.org/x264.html - options: cabac=1 ref=1
> deblock=1:0:0 analyse=0x3:0x113 me=hex subme=2 psy=1 psy_rd=1.00:0.00
> mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0
> deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=18
> lookahead_threads=6 sliced_threads=0 nr=0 decimate=1 interlaced=0
> bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1
> b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250
> keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=10 rc=crf
> mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40
> aq=1:1.00\n'] +1ms
>
> ffmpeg::process::data [data:"Output #0, mp4, to 'output.mp4':\n" + '
> Metadata:\n' + ' encoder : Lavf58.29.100\n' + ' Stream
> #0:0(eng): Video: h264 (libx264) (avc1 / 0x31637661),
yuvj420p(pc), 1920x950 [SAR 1:1 DAR 192:95], q=-1--1, 25 fps, 12800 tbn, 25 tbc
> (default)\n' + ' Metadata:\n' + ' alpha_mode : 1\n' + '
> encoder : Lavc58.54.100 libx264\n' + ' Side data:\n' + '
> cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1\n' + '
> Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz,
> stereo, fltp, 128 kb/s (default)\n' + ' Metadata:\n' + '
> encoder : Lavc58.54.100 aac\n'] +0ms
>
> ffmpeg::process::data [data:'frame= 45 fps=0.0 q=28.0 size=
> 0kB time=00:00:01.87 bitrate= 0.2kbits/s speed=3.48x \r'] +505ms
>
> ffmpeg::process::data [data:'frame= 61 fps= 56 q=28.0 size=
> 0kB time=00:00:02.41 bitrate= 0.2kbits/s speed=2.22x \r'] +564ms
>
> ffmpeg::process::data [data:'frame= 76 fps= 48 q=28.0 size=
> 0kB time=00:00:02.88 bitrate= 0.1kbits/s speed=1.81x \r'] +492ms
我对此输出有疑问,因为它可能导致了问题。
ffmpeg::process::data [data:'[swscaler @ 0x55a63050ddc0] deprecated
pixel format used, make sure you did set range correctly\n'] +23ms
我希望我已经提供了有关我面临的问题的足够信息。请询问正确理解问题所需的任何其他信息。
最佳答案
如果您将数据传送到 ffmpeg
进程,总是关闭stdin
先等待ffmpeg
过程自行完成。这对于 MP4 格式尤其重要,但总的来说这是一个很好的做法。
MP4 和 MKV 之间的主要区别之一是 MP4 将其流信息(又名 MOOV 数据包)存储在 文件结尾默认。因此,如果您过早地终止 ffmpeg(例如,在将最后一帧写入管道之后),您就没有给 ffmpeg 写入 MOOV 数据包的机会,这会导致文件不可用。
关于video - FFmpeg 管道输入,从 WebM 转码到 MP4 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72068769/
我正在使用 node.js 和 mocha 单元测试,并且希望能够通过 npm 运行测试命令。当我在测试文件夹中运行 Mocha 测试时,测试运行成功。但是,当我运行 npm test 时,测试给出了
我的文本区域中有这些标签 ..... 我正在尝试使用 replaceAll() String 方法替换它们 text.replaceAll("", ""); text.replaceAll("", "
早上好,我是 ZXing 的新手,当我运行我的应用程序时出现以下错误: 异常Ljava/lang/NoClassDefFoundError;初始化 ICOM/google/zxing/client/a
我正在制作一些哈希函数。 它的源代码是... #include #include #include int m_hash(char *input, size_t in_length, char
我正在尝试使用 Spritekit 在 Swift 中编写游戏。目的是带着他的角色迎面而来的矩形逃跑。现在我在 SKPhysicsContactDelegate (didBegin ()) 方法中犯了
我正在尝试创建一个用于导入 CSV 文件的按钮,但出现此错误: actionPerformed(java.awt.event.ActionEvent) in cannot implement
请看下面的代码 public List getNames() { List names = new ArrayList(); try { createConnection(); Sta
我正在尝试添加一个事件以在“dealsArchive”表中创建一个条目,然后从“deals”表中删除该条目。它需要在特定时间执行。 这是我正在尝试使用的: DELIMITER $$ CREATE EV
我试图将两个存储过程的表结果存储到 phpmyadmin 例程窗口中的单个表中,这给了我 mariadb 语法错误。单独调用存储过程给出了结果。 存储过程代码 BEGIN CREATE TABLE t
我想在 videoview 中加载视频之前有一个进度条。但是我收到以下错误。我还添加了所有必要的导入。 我在 ANDROID 中使用 AIDE 这是我的代码 public class MainActi
我已经使用了 AsyncTask,但我不明白为什么在我的设备 (OS 4.0) 上测试时仍然出现错误。我的 apk 构建于 2.3.3 中。我想我把代码弄错了,但我不知道我的错误在哪里。任何人都请帮助
我在测试 friend 网站的安全性时,通过在 URL 末尾添加 ' 发现了 SQL 注入(inject)漏洞该网站是用zend框架构建的我遇到的问题是 MySQL -- 中的注释语法不起作用,因此页
我正在尝试使用堆栈溢出答案之一的交互式信息窗口。 链接如下: interactive infowindow 但是我在代码中使用 getMap() 时遇到错误。虽然我尝试使用 getMapAsync 但
当我编译以下代码时出现错误: The method addMouseListener(Player) is undefined for the type Player 代码: import java.
我是 Android 开发的初学者。我正在开发一个接收 MySql 数据然后将其保存在 SQLite 中的应用程序。 我将 Json 用于同步状态,以便我可以将未同步数据的数量显示为要同步的待处理数据
(这里是Hello world级别的自动化测试人员) 我正在尝试下载一个文件并将其重命名以便于查找。我收到一个错误....这是代码 @Test public void allDownload(
我只是在写另一个程序。并使用: while (cin) words.push_back(s); words是string的vector,s是string。 我的 RAM 使用量在 4 或 5
我是 AngularJS 的新手,我遇到了一个问题。我有一个带有提交按钮的页面,当我单击提交模式时必须打开并且来自 URL 的数据必须存在于模式中。现在,模式打开但它是空的并且没有从 URL 获取数据
我正在尝试读取一个文件(它可以包含任意数量的随机数字,但不会超过 500 个)并将其放入一个数组中。 稍后我将需要使用数组来做很多事情。 但到目前为止,这一小段代码给了我 no match for o
有些人在使用 make 命令进行编译时遇到了问题,所以我想我应该在这里尝试一下,我已经在以下操作系统的 ubuntu 32 位和挤压 64 位上尝试过 我克隆了 git 项目 https://gith
我是一名优秀的程序员,十分优秀!