小编sza*_*ary的帖子

如何用libavcodec/x264编码h.264?

我试图使用libavcodec/libavformat编码视频.音频效果很好,但当我尝试编码视频时,我收到以下错误:

[libx264 @ 0x10182a000]broken ffmpeg default settings detected  
[libx264 @ 0x10182a000]use an encoding preset (vpre)  
Run Code Online (Sandbox Code Playgroud)

使用命令行ffmpeg很容易修复,但我想在C中执行此操作.我的选项是

AVStream *pVideoOutStream = av_new_stream(pOutFormatCtx, 0);  
AVCodecContext *pVideoOutCodecCtx  = pVideoOutStream->codec;  

pVideoOutCodecCtx->codec_id        = CODEC_ID_H264;    
pVideoOutCodecCtx->codec_type      = CODEC_TYPE_VIDEO;  
pVideoOutCodecCtx->bit_rate        = pVideoInCodecCtx->bit_rate;  
pVideoOutCodecCtx->width           = pVideoInCodecCtx->width;    
pVideoOutCodecCtx->height          = pVideoInCodecCtx->height;  
pVideoOutCodecCtx->pix_fmt         = pVideoInCodecCtx->pix_fmt;    
pVideoOutCodecCtx->sample_rate     = pVideoInCodecCtx->sample_rate;    
pVideoOutCodecCtx->gop_size        = 30;  
Run Code Online (Sandbox Code Playgroud)

但是avcodec_open()失败了.

我需要设置哪些其他值才能使x264满意?

c x264 libavcodec libav libx264

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

H264具有多个PPS和SPS

我有一张卡,它在每个I帧之前直接按顺序生成带有SPS(序列参数集)和PPS(图像参数集)的H264流.我看到大多数H264流在第一个I帧上包含PPS和SPS.

这是推荐的吗?解码器/复用器通常支持多个PPS和SRS吗?

decoder h.264

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

mp4 无法在移动浏览器中加载

1)我有一个mp4文件,可以在这里播放:http://php.weilomo.com/html/index.html 在移动和桌面浏览器中都可以播放。

2)当我将相同的html移动到我的服务器nginx+wildfly8.0时,该视频只能在桌面上播放,而不能在移动浏览器(safari或android)中播放。错误是:无法加载视频,因为服务器或网络出现故障,或者因为格式不受支持

任何想法?

太感谢了 。

browser video mobile mp4

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

videojs player.textTracks() 在 safari 上返回错误类型的对象,无法捕获 TextTrackuechange 事件

我正在尝试处理与视频相关的一些 TextTrack 信息。我从 Mux.com 嵌入了一个视频,其中包含包含节目数据时间 (PDT) 的元数据。大多数浏览器都会表现,但 videojs 似乎在 safari 中返回不同类型的对象,因此我无法附加事件侦听器来捕获uechange 事件并提取其 PDT 日期字符串。

在我测试的大多数浏览器(Firefox、Chrome、Edge 等)上,此代码将在 DIV#sneakyimp_pdt 中正确显示最新的 PDT,但在 Safari 中,videojs player.textTracks() 函数返回的对象是不同的类型。Safari 生成的metadataTrack 对象是一个TextTrack对象,而不是像大多数浏览器中那样是某种e类。即便如此,我似乎无法将任何事件侦听器附加到TextTrackuechange事件。

有人可以告诉我我在这里做错了什么吗?我添加了相当多的特殊情况代码来尝试将侦听器附加到这些文本轨道,但它仍然不起作用。

<div id="sneakyimp">
  <figure>
    <video class='mux-player video-js' width=1920 height=1080 poster='https://example.com/foo.thumb.jpg' controls preload='metadata'>
      <source src='https://stream.mux.com/VIDEO-ID-HERE.m3u8' type='application/x-mpegURL' />
    </video>
  </figure>
</div>
<div id="sneakyimp_pdt">PDT WILL LOAD HERE</div>
<div id="sneakyimp_ct">currentTime WILL LOAD HERE</div>
<script>
// the videojs player object
let player = null;
function myPlayerInit() {
    const metadataTrack = Array.prototype.find.call(player.textTracks(), track => track.label …
Run Code Online (Sandbox Code Playgroud)

html javascript video metadata video.js

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

codecs.ascii_decode(input,self.errors)[0] UnicodeDecodeError:'ascii'编解码器无法解码318位的字节0xc2:序号不在范围内(128)

我试图打开并读取包含大量文本的.txt文件.下面是我的代码,我不知道如何解决这个问题.任何帮助将非常感激.

file = input("Please enter a .txt file: ")
myfile = open(file)
x = myfile.readlines()
print (x)
Run Code Online (Sandbox Code Playgroud)

当我输入.txt文件时,这是完整的错误消息显示如下:

line 10, in <module> x = myfile.readlines()
line 26, in decode return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 318: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

python ascii decode readlines

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

为什么print语句在python中产生没有任何标签的换行符?

这是代码 -

import os

file = open("list.txt", "rw+")
text = file.readline()
print "ffmpeg -loop 1 -i image.jpg -i \""+text+"\" -vf scale=1280:720 -shortest -acodec copy -vcodec mpeg4 \""+text+".mp4\""

os.system("ffmpeg -loop 1 -i image.jpg -i \""+text+"\" -vf scale=1280:720 -shortest -acodec copy -vcodec mpeg4 \""+text+".mp4\"")
Run Code Online (Sandbox Code Playgroud)

但输出是这样的:

ffmpeg -loop 1 -i image.jpg -i "some-file-path
" -vf scale=1280:720 -shortest -acodec copy -vcodec mpeg4 "some-file-path"
Run Code Online (Sandbox Code Playgroud)

而它应该在一条线上

并且ffmpeg抛出一个文件不存在的错误!

python python-2.7

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

无法使用 ffmpeg 下载 m3u8

我想使用 ffmpeg 命令从 m3u8 链接下载 mp4。

ffmpeg -i https://hls.mediacdn.vn/vtv/2019/4/7/0704sao-mai-1554652229269816114782-af6d9.mp4/master.m3u8 -c copy -bsf:a aac_adtstoasc output1.mp4
Run Code Online (Sandbox Code Playgroud)

但是加载第一段时出现错误

https://hls.mediacdn.vn/vtv/2019/4/7/0704sao-mai-1554652229269816114782-af6d9.mp4/720/seg-1-v1-a1.ts?v=664e3521
Run Code Online (Sandbox Code Playgroud)
https://hls.mediacdn.vn/vtv/2019/4/7/0704sao-mai-1554652229269816114782-af6d9.mp4/master.m3u8: Invalid data found when processing input
Run Code Online (Sandbox Code Playgroud)

有人帮助我解决我的问题。谢谢!

完整命令

ffmpeg -i https://hls.mediacdn.vn/vtv/2019/4/7/0704sao-mai-1554652229269816114782-af6d9.mp4/master.m3u8 -c copy -bsf:a aac_adtstoasc output2.mp4ffmpeg version 4.1.1-0york1~16.04 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.11) 20160609
  configuration: --prefix=/usr --extra-version='0york1~16.04' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt …
Run Code Online (Sandbox Code Playgroud)

ffmpeg

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