标签: video-encoding

使用ffmpeg编码高质量视频

我有一组视频帧保存为目录中的图像,我正在尝试将这些视频帧编码为高质量的视频,但是我尝试的每个设置和每种格式都会产生非常明显的伪像.

基本命令是这样的:

ffmpeg -r 25 -i %4d.png myvideo.mpg
Run Code Online (Sandbox Code Playgroud)

我已经尝试了minrate和maxrate标志.任何{mpg,avi,mov,flv}格式都可以.

有关设置的建议吗?最终文件大小不是问题.

video ffmpeg video-encoding

90
推荐指数
4
解决办法
14万
查看次数

无需重新编码即可旋转mp4视频

我正在寻找一种方法来旋转我的Debian Wheezy系统上使用Nexus 4拍摄的视频.视频以纵向模式拍摄,我想将它们旋转到横向模式.优选地,旋转是命令行驱动的.

我发现以前的几个问题暗示了一个很好的解决方案,但我似乎无法让它运作起来.

首先是这个问题: 使用FFmpeg旋转视频

但它表明ffmpeg已经过时,我应该使用avconv.我发现这个问题详细说明了前进的方向. https://askubuntu.com/questions/269429/how-can-i-rotate-video-by-180-degrees-with-avconv

这让我使用以下命令:

avconv -i original.mp4 -vf "transpose=1" -codec:v libx264 -preset slow -crf 25 -codec:a copy flipped.mp4
Run Code Online (Sandbox Code Playgroud)

然而,这是非常缓慢的(上次测试花了我超过6小时不到3分钟的镜头)并且不会导致可播放的电影.我也在记录输出时出现错误,该错误表明Mb Rate> level limit.

这里有重新编码的问题吗?在应用轮换之前,我是否应首先将视频从手机重新编码为另一种,更"可行"的编码?或者我错过了另一个重点?

debian ffmpeg rotation video-encoding avconv

68
推荐指数
3
解决办法
7万
查看次数

从Surface编码时,编码器在Adreno GPU上崩溃

我一直在努力解决这个问题一个多星期,而且很可能是高通GPU /硬件视频编码器中的一个错误.由于我们被迫发布应用程序,他们的开发者论坛没有提供任何反馈,我也在这里发布,希望有人能够提供一些线索,甚至更好的解决方法,以便编码器中的错误是没有触发.

应用程序从Surface编码.当某些图像渲染到表面时,编码器在同一位置失败(100%)(当前编码的帧是关键帧时).崩溃时编码器的Logcat输出是(最后一行以非常高的速率重复):

11-26 11:41:33.312: E/OMX-VENC-720p(25949): ERROR: async_msg_process() - Error statuscode = 1
11-26 11:41:33.312: E/ACodec(29317): [OMX.qcom.video.encoder.avc] ERROR(0x80001009)
11-26 11:41:33.312: E/MediaCodec(29317): Codec reported an error. (omx error 0x80001009, internalError -2147483648)
11-26 11:41:33.362: E/OMX-VENC-720p(25949): ERROR: venc_use_buf:set input buffer failed 
11-26 11:41:33.362: E/OMX-VENC-720p(25949): ERROR: in dev_use_buf
11-26 11:41:33.362: E/OMX-VENC-720p(25949): ERROR: empty_buffer_done() failed!
11-26 11:41:33.372: E/OMX-VENC-720p(25949): m_fbd_count at o/p flush = 306
11-26 11:41:33.372: E/OMX-VENC-720p(25949): m_etb_count at i/p flush = 313
11-26 11:41:33.372: E/OMX-VENC-720p(25949): ERROR: ioctl VEN_IOCTL_CMD_FILL_OUTPUT_BUFFER failed
11-26 11:41:33.372: E/OMX-VENC-720p(25949): …
Run Code Online (Sandbox Code Playgroud)

android video-encoding mediacodec

66
推荐指数
1
解决办法
2856
查看次数

H.264视频和MPEG-4视频有什么区别?

这两个都一样吗?是MPEG-4的H.264编解码器吗?如果我需要将flv转换为高清H.264视频格式怎么办?我想制作在线电视流媒体,并希望使用PHP或Python.

video video-encoding

59
推荐指数
2
解决办法
22万
查看次数

将一系列图像编码为视频

如何从Android上的一系列图像/照片创建视频文件?可以使用当前的SDK完成吗?还是我需要一个编解码库?

android video-encoding

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

FFmpeg输出文件格式没有扩展名

我正在开发一个需要以下列形式存储视频的系统:

/path/to/video/<md5 of the file>
Run Code Online (Sandbox Code Playgroud)

所以我没有输出扩展名.我正在使用ffmpeg转换这些视频,但它似乎使用输出文件扩展名来确定输出格式,所以这是我的问题.

由于我在文件名中没有输出扩展名,有没有办法直接在命令行中指定输出格式而不创建临时文件或像这样的脏解决方案?

谢谢

video ffmpeg video-encoding

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

使用H.264建议的压缩率?

注意事项:我意识到这是一个非常复杂的问题,大约有一百万个细微差别,我正在努力减少到一个数字......

我即将使用H.264编码进行大型视频编码项目.我们正在尝试创建多个比特率配置文件,以适应互联网连接,处理器,设备等的流媒体.

一般来说,我应该期望看到什么样的压缩比(在保持合理的质量水平的同时)?

例如,640 x360(16:9)像素视频文件@ 24帧/秒和16位颜色应该产生大约33 MB/s 的未压缩文件.

我被告知,对于该文件,500 Kbits /秒(或62 KB/s)不是不合理的视频比特率.这看起来很疯狂 - 压力超过530:1?压缩率为99.8%.我的数学错了吗?

我只是在寻找一个粗略的外部质量指南,例如"超过500x压缩是疯狂的"或"低于400x是浪费带宽".我到处寻找,没有什么能给我带来任何预期的压缩......

compression video video-encoding h.264

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

从MP4/FLV中提取帧?

我知道FFMPEG是可能的,但是如果我有一个部分文件(比如没有开头和结尾)该怎么办.有可能从中提取一些帧吗?

flv mp4 ffmpeg video-encoding mpeg-4

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

使用Android MediaCodec从摄像头编码H.264

我试图让它在Android 4.1上运行(使用升级的Asus Transformer平板电脑).感谢Alex对我之前的问题的回答,我已经能够将一些原始的H.264数据写入文件,但是这个文件只能播放ffplay -f h264,而且似乎丢失了有关帧速率的所有信息(极快的播放).此外,色彩空间看起来不正确(atm使用摄像机默认的编码器侧).

public class AvcEncoder {

private MediaCodec mediaCodec;
private BufferedOutputStream outputStream;

public AvcEncoder() { 
    File f = new File(Environment.getExternalStorageDirectory(), "Download/video_encoded.264");
    touch (f);
    try {
        outputStream = new BufferedOutputStream(new FileOutputStream(f));
        Log.i("AvcEncoder", "outputStream initialized");
    } catch (Exception e){ 
        e.printStackTrace();
    }

    mediaCodec = MediaCodec.createEncoderByType("video/avc");
    MediaFormat mediaFormat = MediaFormat.createVideoFormat("video/avc", 320, 240);
    mediaFormat.setInteger(MediaFormat.KEY_BIT_RATE, 125000);
    mediaFormat.setInteger(MediaFormat.KEY_FRAME_RATE, 15);
    mediaFormat.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420Planar);
    mediaFormat.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 5);
    mediaCodec.configure(mediaFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
    mediaCodec.start();
}

public void close() {
    try {
        mediaCodec.stop();
        mediaCodec.release();
        outputStream.flush();
        outputStream.close();
    } …
Run Code Online (Sandbox Code Playgroud)

android video-encoding video-streaming h.264 android-camera

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

选择用于屏幕录制的视频编解码器

我正在通过录制屏幕和我的声音来做一系列教程.正如PNG最适合截图一样,而JPEG更适合照片(虽然有损),哪种视频编码容器格式更适合屏幕录制?

请提供以下建议:

  1. 主副本(用于编辑和存档.(几乎)无损)
  2. 分发副本(高压缩,可接受的损失)

需要考虑的要点:

  • 高质量的视频,屏幕文字清晰易读
  • 压缩性好.我猜帧间和帧内压缩都会有效.
  • 请提及可配置参数的建议值,如帧速率,压缩级别等.
  • 支持隐藏式字幕(不对视频进行"硬编码").我倾向于.srt格式
  • 可在Windows,Linux和MacOS上查看

compression video video-capture codec video-encoding

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