我刚刚在我的 mac 上安装了最新版本的 logstash 并尝试了这个:
logstash -e 'input { stdin { } } output { stdout { codec => rubydebug } }'
Run Code Online (Sandbox Code Playgroud)
这个命令来自互联网指南,它说它会打印一些消息,我的问题是,这个命令是否将日志存储到任何文件中,或者它只是尝试打印格式化的 json 字符串,正如我从屏幕打印中看到的那样?
非常感谢。
A 手里有一大堆.avi文件,我想将它们转换为.mp4. 将我在互联网上找到的所有内容拼凑在一起,最终得到如下结果:
ffmpeg -i something.avi -c:v copy -c:a copy something.mp4
Run Code Online (Sandbox Code Playgroud)
我得到的内容可以在 VLC 播放器上播放,但是,当然,它可以播放我所经历的任何内容。但是,我无法使用 Finder 中的 QuickLook 或 QuickTime 播放器来播放它。
在某些情况下,我会收到视频,但没有声音。在其他一些情况下,我会收到乱码的视频。
我猜测.avi文件内的音频或视频编解码器与 MacOS 不兼容,并且copy上面的说明不合适。在这种情况下,我想我实际上需要重新编码音频或视频。
如果这听起来不连贯,我承认我对视频文件知之甚少。
尝试制作可在 MacOS 上本地运行的 MP4 的最佳设置是什么?
我经常遇到 hvc1 视频在 ffprobe 信息和 FFmpeg 信息之间获取帧数不一致的问题,我想知道此问题的原因是什么,以及如何在不重新编码视频的情况下解决该问题。
我用我拥有的测试视频编写了以下示例脚本
我将视频分成 5 秒的片段,并得到 ffprobe 给出的预期视频长度,但 FFmpeg 在除第一个片段之外的每个片段上给出的帧数比预期少 3 帧。
如果我按 10 秒分割或任何分割,问题完全相同,我总是会丢失 3 帧。
我注意到第一个片段总是比其他片段小 3 帧(在 ffprobe 上),并且它是唯一一致的片段。
这是我为测试此问题而编写的示例脚本:
# get total video frame number using ffprobe or ffmpeg
total_num_frames=$(ffprobe -v quiet -show_entries stream=nb_read_packets -count_packets -select_streams v:0 -print_format json test_video.mp4 | jq '.streams[0].nb_read_packets' | tr -d '"')
echo $total_num_frames
ffmpeg -hwaccel cuda -i test_video.mp4 -vsync 2 -f null -
# Check ffprobe of each segment is consistent
rm -rf clips && …Run Code Online (Sandbox Code Playgroud) 我正在调用Video Recorder,如下所示.
Intent intent = new Intent(android.provider.MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(intent, REQUEST_VIDEO_CAPTURED);
Run Code Online (Sandbox Code Playgroud)
我可以将录制质量设置为LOW.我可以传递任何最终变量来实现这个任务吗?
感谢您提前的时间.
有谁知道如何将英特尔媒体SDK(版本:Media SDK 2010)H.264视频帧解码输出NV12格式转换为RGB888(RGB24)位转换?
基本上Media SDK解码器输出将采用NV12格式,并且渲染需要RGB24位格式,因此如果任何转换代码可用于转换NV12 - > RGB24将对我们有很大帮助.
我已经成功地使用 FFmpeg 加载压缩音频文件并使用我编写的一些代码查询它们的 channel_layouts:
AVFormatContext* fmtCxt = nullptr;
avformat_open_input( &fmtCxt, "###/440_sine.wav", nullptr, nullptr );
avformat_find_stream_info( fmtCxt, nullptr );
av_find_best_stream( fmtCxt, AVMEDIA_TYPE_AUDIO, -1, -1, nullptr, 0 );
AVCodecContext* codecCxt = fmtCxt->streams[ret]->codec;
AVCodec* codec = avcodec_find_decoder( codecCxt->codec_id );
avcodec_open2( codecCxt, codec, nullptr );
std::cout << "Channel Layout: " << codecCxt->channel_layout << std::endl;
av_dump_format( fmtCxt, 0, "###/440_sine.wav", 0 );
Run Code Online (Sandbox Code Playgroud)
为简洁起见,我删除了所有错误检查。但是,对于 Microsoft WAV 文件(单声道或立体声),AVCodecContext::channel_layout成员始终为 0 - 尽管ffprobe并且av_dump_format(..)两者都返回有效信息:
Input #0, wav, from '###/440_sine.wav':
Duration: 00:00:00.01, bitrate: 740 kb/s
Stream …Run Code Online (Sandbox Code Playgroud) 我有一个视频文件,并且我将视频信息转储到ffmpeg大约3年之前的txt文件中。
...
Stream #0:1[0x1c0]: Audio: mp2, 48000 Hz, stereo, s16, 256 kb/s
Stream #0:2[0x1c1]: Audio: mp2, 48000 Hz, stereo, s16, 256 kb/s
Run Code Online (Sandbox Code Playgroud)
但是我发现使用更新ffprobe时格式发生了变化(ffprobe版本N-78046-g46f67f4版权所有(c)2007-2016 FFmpeg开发人员)。
...
Stream #0:1[0x1c0]: Audio: mp2, 48000 Hz, stereo, s16p, 256 kb/s
Stream #0:2[0x1c1]: Audio: mp2, 48000 Hz, stereo, s16p, 256 kb/s
Run Code Online (Sandbox Code Playgroud)
对于相同的视频,其样本格式更改为s16p。
我实现了一个使用ffmpeg的简单视频播放器。它可以播放3年前的视频,但是在更改为更新ffmpeg之后无法输出正确的pcm流。我花了很多时间,终于发现音频应该是s16而不是s16p。在我添加行之后,在调用avcodec_decode_audio4之前,解码的音频流可以正常工作,
audio_codec_ctx->sample_fmt = AV_SAMPLE_FMT_S16
Run Code Online (Sandbox Code Playgroud)
但这只是一个hack。有人遇到这个问题吗?如何使ffmpeg正常工作?任何提示表示赞赏。谢谢!
我在RPi 2上使用带Python 3.2的moviepy模块。它使用FFMPEG读写视频,因此我按照以下说明安装了FFMPEG 。现在,当我运行该程序时,它说我的视频导出失败,因为FFMPEG找不到所需的libmp3lame编解码器。我如何在我的RPi 2(运行Raspian Wheezy)上安装libmp3lame编解码器?
我认为我必须重新安装FFMPEG才能安装编解码器。如何正确执行此操作?
如果我指定一个编解码器来重新编码并省略比特率参数,FFMpeg 会做什么?我用一个视频进行了测试,但我想了解
原来的:
Duration: 00:00:10.48, start: 0.000000, bitrate: 17282 kb/s
Run Code Online (Sandbox Code Playgroud)
然后我跑了
ffmpeg.exe -i a.mp4 -c:v h264 c.mp4
Run Code Online (Sandbox Code Playgroud)
结果:
Duration: 00:00:10.50, start: 0.000000, bitrate: 4467 kb/s
Run Code Online (Sandbox Code Playgroud)
它从哪里得到 4467?它是任何视频的标准值还是取决于某些东西?
我需要将几个视频转换为动画 webp 格式,但我没有找到可以处理它的软件。有一些在线工具,但它们要么是付费的,要么有低分辨率和 fps 等限制。