标签: video-encoding

在命令行上使用ffmpeg将视频拼接在一起

有人知道如何使用ffmpeg(或其他cli)将两个(或更多)视频拼接在一起吗?这是假设所有的影片都在相同的格式和所使用的视频格式允许无损拼接(无转码,刚刚结束对终端的拼接).

video ffmpeg video-processing video-encoding video-editing

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

在C#中使用RTMP或RTSP协议

您是否知道任何允许我使用RTMP或RTSP通信协议从C#发送编码音频/视频流到流媒体服务器的库?

.net c# video-capture video-encoding video-streaming

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

python图像帧到视频

我正在编写一个python/django应用程序,它需要进行图像处理,然后将图像组合成一个视频(每个图像都是一个帧).图像处理很容易.我正在使用PIL,但是对于转换为视频部分,我被卡住了.我发现pyffmpeg但似乎只是将视频解码为帧,而不是相反.虽然我可能错过了什么.我也听说pythonMagick(imagemagick包装器)可以做到这一点,但我似乎无法在文档中找到有关编码的任何内容.

这是在linux服务器上运行的,必须是python(因为这是应用程序所在的).

我该怎么用?

python image-processing video-encoding

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

使用 ffmpeg 叠加视频

我正在尝试编写一个脚本,将 2 个单独的视频文件合并为 1 个更宽的视频文件,其中两个视频同时播放。我已经大致弄清楚了,但是当我查看最终输出时,我正在叠加的视频非常慢。

这是我在做什么:

  1. 将左侧视频展开为最终视频尺寸

    ffmpeg -i left.avi -vf "pad=640:240:0:0:black" left_wide.avi

  2. 将右侧视频叠加在左侧视频的顶部

    ffmpeg -i left_wide.avi -vf "movie=right.avi [mv]; [in][mv] overlay=320:0"combined_video.avi

在生成的视频中,右侧视频的播放速度约为左侧视频的一半。知道如何让这些文件同步吗?

ffmpeg video-processing video-encoding

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

如何非常快速地将 jpeg 图像编码为 H264(将图像转换为视频)

我有 30 张分辨率为 480 x 640 的 JPEG 图像 (.jpg)。每张图像大约需要 20KB(所有图像大约需要 600KB)。

我正在使用FFmpeg命令将这些图像编码为H264格式的视频。

我需要非常快地完成此操作 - 大约 1 秒。

使用经典命令:

ffmpeg -y  -f  image2   -r 1/5   -i image_%d.jpg   -c:v libx264   -r 30   video.mp4
Run Code Online (Sandbox Code Playgroud)

大约需要90 秒

添加后 -preset ultrafast

ffmpeg -y  -f  image2   -r 1/5   -i image_%d.jpg   -c:v libx264   -preset ultrafast    -r 30   video.mp4
Run Code Online (Sandbox Code Playgroud)

编码大约需要15 秒,这要好得多,但仍然不够

我也尝试过其他参数,例如:

-profile:v baseline

-qscale:v

-b:v 1000k

-crf 24
Run Code Online (Sandbox Code Playgroud)

但编码时间不低于 10 秒。

我不熟悉 FFmpeg 命令,也不熟悉我需要使用的参数,这就是我在这里发布这个问题的原因。

视频质量需要好,不需要完美。

请注意:我正在使用 ProcessBuilder …

encoding android ffmpeg video-encoding h.264

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

计算H.264比特流中的帧

如何计算/检测原始H.264比特流中的帧(图片)?我知道有5种VCL NALU类型,但我不知道如何rec(k)将它们的序列识别为访问单元.我想检测一个帧意味着检测一个访问单元作为访问单元

一组NAL单元,它们按解码顺序连续并且只包含一个主要编码图像.除了主要编码图像之外,访问单元还可以包含一个或多个冗余编码图像,一个辅助编码图像,或不包含编码图像的切片或切片数据分区的其他NAL单元.访问单元的解码总是产生解码图像.

我希望它知道什么是实时流出服务器的FPS.

ffmpeg video-encoding video-streaming h.264

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

使用 FFmpeg 的高质量屏幕截图

我正在尝试找出在 REHL 上进行高质量屏幕截图的命令。

我尝试了各种选择,但没有一个真正奏效。质量不够好。我对 ffmpeg 很陌生,不太了解所有不同的标志。所以任何帮助将不胜感激!

我试过的命令:

ffmpeg -y -f x11grab -r 30 -s 1920x1080 -i :0.0+0,0 -vcodec libx264 -strict -2 -b:v 16M output.mov
Run Code Online (Sandbox Code Playgroud)

我尝试的第一个命令。奇怪的是它似乎没有保留指定的比特率-b:v 16M。输出视频的比特率仅为 2mb/s。这不是在进行屏幕捕获时指定比特率的正确方法吗?

ffmpeg -f x11grab -s 1920x1080 -r 30 -i :0.0 -qscale 0 -vcodec huffyuv output.mov
Run Code Online (Sandbox Code Playgroud)

huffyuv 编解码器应该是无损的,但质量似乎并不比 libx264 输出好。

ffmpeg -f x11grab -r 30 -s 1920x1080 -i :0.0+0,0 -vcodec copy -pix_fmt yuv420p -qscale 0 -an output.mkv
ffmpeg -f rawvideo -pix_fmt yuv420p -s:v 1920x1080 -r 30 -i output.mkv -an -c:v libx264 -qscale 0 …
Run Code Online (Sandbox Code Playgroud)

video ffmpeg screen-capture video-encoding x264

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

什么是H.264中的VBV(视频缓冲验证器)?

我无法理解什么是VBV(视频缓冲验证器)以及它与maxrate有什么关系.
当我使用此命令时:

ffmpeg -i input.mp4 -crf 21 -maxrate 750k -bufsize 750k -codec:v:0 libx264 -s 640x360 -r 30 output.mp4
Run Code Online (Sandbox Code Playgroud)

output.mp4视频的比特率约为730 kb/s
但是当我使用此命令时(相同的命令但使用-bufsize 5000k):

ffmpeg -i input.mp4 -crf 21 -maxrate 750k -bufsize 5000k -codec:v:0 libx264 -s 640x360 -r 30 output.mp4
Run Code Online (Sandbox Code Playgroud)

output.mp4视频的比特率超过750kb/s(约800-900 kb/s).
为什么会这样?为什么我们需要bufsize?bufsize有什么作用?

ffmpeg video-processing video-encoding h.264

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

libx264 编码错误输入图片宽度(40)大于步幅(0)

我在ffmpeg中使用libx264编码视频,我使用了下面的配置。

enCodecContext->bit_rate = 300000;
enCodecContext->width = 80;
enCodecContext->height = 60;
enCodecContext->time_base = (AVRational) {1, 25};
enCodecContext->gop_size = 10;
enCodecContext->max_b_frames = 1;
enCodecContext->pix_fmt = PIX_FMT_YUV420P;
enCodecContext->qcompress = 0.6;
av_opt_set(enCodecContext->priv_data, "preset", "slow", 0);
Run Code Online (Sandbox Code Playgroud)

但是当我调用avcodec_encode_video2with 时enCodecContext,出现错误Input picture width (40) is greater than stride (0)

avcodec_encode_video2(enCodecContext, &filteredAVPacket, pFilteredAVFrame, &got_packet_ptr);
Run Code Online (Sandbox Code Playgroud)

pFilteredAVFrame->widthpFilteredAVFrame->height8060分别。

配置时我是否遗漏了一些东西libx264,我怎样才能获得一个可行的配置libx264来编码我的视频?

ffmpeg video-encoding libx264

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

如何使用AVAssetExportSession与AVVideoCodecH264编解码器进行编码?

我目前有以下代码,可以在选择后压缩视频

func compressVideo(inputURL: NSURL, outputURL: NSURL, handler:(session: AVAssetExportSession)-> Void)
{
    var urlAsset = AVURLAsset(URL: inputURL, options: nil)

    var exportSession = AVAssetExportSession(asset: urlAsset, presetName: AVAssetExportPresetMediumQuality) // AVAssetExportPresetHighestQuality)

    exportSession!.outputURL = outputURL
    exportSession!.outputFileType = AVFileTypeMPEG4 //AVFileTypeQuickTimeMovie
    exportSession!.shouldOptimizeForNetworkUse = true
    exportSession!.exportAsynchronouslyWithCompletionHandler { () -> Void in

        handler(session: exportSession!)
    }

}
Run Code Online (Sandbox Code Playgroud)

有什么方法可以将所选视频重新编码为AVVideoCodecH264或其他方法?由于在HTML5播放器(非野生动物园)或Android手机上播放音频时,音频已关闭。

视频文件本身是从Snapchat导出的.mov格式,并且视频中包含照片片段时,会显示音频同步。

video-encoding avasset swift

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