首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >FFmpeg:按语言选择音频流

FFmpeg:按语言选择音频流
EN

Stack Overflow用户
提问于 2017-10-16 11:37:28
回答 1查看 3.8K关注 0票数 1

我试图转换电视流,但只包括英语音频流。我尝试过使用-map 0:m:language:eng流说明符,但我得到:

代码语言:javascript
运行
复制
"Automatic encoder selection failed for output stream #0:3. Default encoder for format mpegts (codec none) is probably disabled. Please choose an encoder manually.
Error selecting an encoder for stream 0:3"

这是尽管包括一个编码器。我在这个主题上尝试过各种各样的变体,但都没有成功。

一次尝试的完整输出如下:

代码语言:javascript
运行
复制
ffmpeg -i http://192.168.1.74:8001/1:0:1:189E:7FD:2:11A0000:0:0:0: -ignore_unknown -map 0:a -map 0:m:language:eng -map 0:v -acodec aac -vcodec libx264 -b:v 1100000 -t 00:00:30 "somethin.ts" 2>output.txt

    Consider increasing the value for the 'analyzeduration' and 'probesize' options
[mpegts @ 03db7b60] Could not find codec parameters for stream 17 (Unknown: none ([11][0][0][0] / 0x000B)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[mpegts @ 03db7b60] Could not find codec parameters for stream 18 (Unknown: none ([11][0][0][0] / 0x000B)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mpegts, from 'http://192.168.1.74:8001/1:0:1:189E:7FD:2:11A0000:0:0:0:':
  Duration: N/A, start: 23690.732933, bitrate: N/A
  Program 6321 
  Program 6322 
  Program 6338 
  Program 6301 
  Program 6302 
    Stream #0:0[0x13ec]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x13ee](NAR): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 224 kb/s
    Stream #0:2[0x13ed](eng): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 224 kb/s
    Stream #0:3[0x13ef](eng,eng): Subtitle: dvb_teletext ([6][0][0][0] / 0x0006)
    Stream #0:4[0x13f0](eng): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
    Stream #0:5[0xf04]: Unknown: none ([5][0][0][0] / 0x0005)
    Stream #0:6[0xf03]: Unknown: none ([5][0][0][0] / 0x0005)
    Stream #0:7[0xf02]: Unknown: none ([5][0][0][0] / 0x0005)
    Stream #0:8[0xf01]: Unknown: none ([5][0][0][0] / 0x0005)
    Stream #0:9[0xf00]: Unknown: none ([5][0][0][0] / 0x0005)
    Stream #0:10[0x92a]: Unknown: none ([5][0][0][0] / 0x0005)
    Stream #0:11[0x913]: Unknown: none ([5][0][0][0] / 0x0005)
    Stream #0:12[0x912]: Unknown: none ([5][0][0][0] / 0x0005)
    Stream #0:13[0x911]: Unknown: none ([5][0][0][0] / 0x0005)
    Stream #0:14[0x919]: Unknown: none ([5][0][0][0] / 0x0005)
    Stream #0:15[0xf09]: Unknown: none ([11][0][0][0] / 0x000B)
    Stream #0:16[0xf08]: Unknown: none ([11][0][0][0] / 0x000B)
    Stream #0:17[0xf07]: Unknown: none ([11][0][0][0] / 0x000B)
    Stream #0:18[0xf06]: Unknown: none ([11][0][0][0] / 0x000B)
  Program 6318 
  Program 6390 
  Program 6391 
  Program 6351 
  Program 6361 
  Program 6306 
  Program 6341 
Automatic encoder selection failed for output stream #0:3. Default encoder for format mpegts (codec none) is probably disabled. Please choose an encoder manually.
Error selecting an encoder for stream 0:3

对如何做到这一点有什么想法。我不能按数字指定数据流,因为我想使用它来处理大量的电视流,而且顺序通常是不同的。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-10-16 12:11:20

输出流0:3是一种基于图像的字幕流.由于您没有为字幕指定编码器,ffmpeg试图选择一个,但失败了,因为它没有基于图像的字幕编码器。您可以复制或删除流。

代码语言:javascript
运行
复制
ffmpeg -i http://192.168.1.74:8001/1:0:1:189E:7FD:2:11A0000:0:0:0: -ignore_unknown -c copy -map 0:a -map 0:m:language:eng -map 0:v -acodec aac -vcodec libx264 -b:v 1100000 -t 00:00:30 "somethin.ts" 2>output.txt

当然,您的主要目标是只按语言映射音频流。您的命令将对视频进行两次映射,因为它被标记为英语。

为了避免这种情况,可以使用两个ffmpeg命令:

代码语言:javascript
运行
复制
ffmpeg -i http://192.168.1.74:8001/1:0:1:189E:7FD:2:11A0000:0:0:0: -ignore_unknown -c copy -map 0:v:0 -map 0:m:language:eng -f mpegts - | ffmpeg -f mpegts -i - -map 0:v:0 -map 0:a:0 -c:a aac -c:v libx264 -b:v 1.1M out.ts
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46769419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档