使用ffmbc多线程转码输出DVCPRO HD。分辨率为1440x1080,隔行扫描。
将一个双声道音轨复制输出成两个单声道音轨
ffmbc -y -threads 8 -i 海外发行测试源文件0726.mp4 -target dvcprohd -tff -an 海外发行测试源文件0726-out.mxf -acodec pcm_s24le -ar 48000 -ac 1 -newaudio -acodec pcm_s24le -ar 48000 -newaudio -acodec pcm_s24le -ar 48000
将一个双声道音轨复制拆分成两个左右单声道音轨
...分别使用ffmpeg ffmbc 实现 输出XDCAM HD422 MXF文件
ffmpeg
#
ffmpeg -i test.mov -pix_fmt yuv422p -vcodec mpeg2video -non_linear_quant 1 -flags +ildct+ilme -top 1 -dc 10 -intra_vlc 1 -qmax 3 -lmin "1*QP2LAMBDA" -vtag xd5c -rc_max_vbv_use 1 -rc_min_vbv_use 1 -g 12 -b:v 50000k -minrate 50000k -maxrate 50000k -bufsize 8000k -acodec pcm_s16le -ar 48000 -bf 2 -ac 2 -f mxf_d10 output.mxf
ffmbc
#
ffmbc -y -threads 8 -i 先导片.mp4 -target xdcamhd422 -tff -acodec pcm_s24le 先导片-out.mov
源码编译nginx+rtmp+hls,并附带nginx配置文件、推流的方式及播放方法。
nginx
#
编译
#
wget http://nginx.org/download/nginx-1.14.0.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/v1.2.1.tar.gz
wget http://zlib.net/zlib-1.2.11.tar.gz
wget
#全部解压并编译nginx
./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/opt/app/openet/oetal1/chenhe/pcre-8.37 --with-zlib=/opt/app/openet/oetal1/chenhe/zlib-1.2.8 --with-openssl=/opt/app/openet/oetal1/chenhe/openssl-1.0.1t --add-module=../nginx-rtmp-module
配置
#
worker_processes auto;
error_log logs/error.log debug;
events {
worker_connections 1024;
}
rtmp {
server {
listen 1935;
chunk_size 4000;
application myapp {
live on;
}
application hls {
live on;
hls on;
hls_path /data/y/ngnix/hls;
hls_playlist_length 1d;
hls_sync 100ms;
hls_continuous on;
hls_fragment 8s;
}
}
}
http {
server {
listen 80;
location / {
root html;
}
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root html;
}
location /hls {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
#server hls fragments
types{
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
alias /data/y/ngnix/hls;
expires -1;
}
}
}
推流
#
#RTMP方式
/opt/ffmpeg/bin/ffmpeg -re -i "/home/1.mp4" -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://127.0.0.1:1935/myapp/test1
#HTTP方式
/opt/ffmpeg/bin/ffmpeg -re -i "/home/2.mp4" -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://127.0.0.1:1935/hls/test2
具体参数可根据自己的需求调整
...最近遇到在 iOS 平台上实时播放 AAC 音频数据流, 一开始尝试用 AudioQueue 直接解 AAC 未果, 转而将 AAC 解码为 PCM,
最终实…
最近遇到在 iOS 平台上实时播放 AAC 音频数据流, 一开始尝试用 AudioQueue 直接解 AAC 未果, 转而将 AAC 解码为 PCM,
...
ffmbc -i xx.ts -vcodec dvvideo -flags +ildct+ilme -tff -pix_fmt yuv422p -vf scal…
ffmbc -i xx.ts -vcodec dvvideo -flags +ildct+ilme -tff -pix_fmt yuv422p -vf scale=1440:1080:1 -acodec pcm_s16le -ar 48000 -ac 1 -y xx.mxf
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=firs…
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT
它接受下列参数:
inputs
输入数。如果没有指定,默认为2。
duration
如何确定流的结尾。
longest
最长的输入时间。(默认)
shortest
最短的输入时间。
first
第一个输入的时间。
dropout_transition
当输入流结束时,体积重整化的过渡时间(以秒为单位)。默认值是2秒。
使用FFmpeg制作多声道视频
将8个音轨混合成双声道
ffmpeg -i input.mkv -filter_complex "[0:1][0:2][0:3][0:4][0:5][0:6][0:7][0:8] amerge=inputs=8" -c:a pcm_s16le output.mkv
使用方式
#
ffmpeg -i input -vf "select=eq(n\,15237)",showinfo -an -f null /dev/null
输出结果
#
15237为display_picture_number
[Parsed_showinfo_1 @ 0x41ca760] n: 0 pts:54860400 pts_time:609.56 pos:427032896 fmt:yuv420p sar:1/1 s:1920x1080 i:T iskey:0 type:B checksum:A2FB0133 plane_checksum:[7E1FA1A9 3D005549 67BC0A32] mean:[92 127 134] stdev:[62.5 9.2 20.7]
参数解释
#
### showinfo ### 不改变输入而在行中显示每帧信息。
显示的信息以`key/value`的序列形式给出
下面是将显示在输出中的值:
- n
帧序数,从0开始计数
- pts
输入帧的时间戳,以时基为单位,时间依赖于输入
- pts_time
按秒计的时间戳
- pos
输入帧在输入流中的偏移定位,-1表示信息不可用和/或无意义(例如合成视频中)
- fmt
像素格式名
- sar
输入帧的宽高比,表示为`num/den`格式
- s
输入帧尺寸,语法同于[视频尺寸(分辨率)](ffmpeg-doc-cn-07.md#视频尺寸(分辨率))
- i
交错模式 ("P"对应 "逐行", "T" 对应上场优先, "B"为下场优先t)
- iskey
为1表示是关键帧,0则不是
- type
输入帧图片类型 ("I"对应I帧, "P" 对应P帧, "B" 对应B帧,或者 "?"对应未知类型).参考定义与`libavutil/avutil.h`中的`av_get_picture_type_char`函数和`
- checksum
输入帧所有信息内容的 Adler-32校验值 (以16进制输出)
- plane_checksum
输入帧所有信息内容的 Adler-32校验值 (以16进制输出), 以格式"[c0 c1 c2 c3]"显示
等有时间了再将其翻译一下,源网址->传送门
stereo → mono stream
Mix a single stereo
stream down to …
等有时间了再将其翻译一下,源网址->传送门
stereo → mono stream
#
![stereo to mono diagram](https://trac.ffmpeg.org/raw-
attachment/wiki/AudioChannelManipulation/stereo_mono.png)Mix a single stereo
...命令参数
#
ffmpeg -i input -aspect 16:9 -c:v mpeg2video -b:v 4000k -minrate 4000k -maxrate 4000k -bufsize 2000k -dc 9 -flags +ilme+ildct -alternate_scan 1 -top 0 output
其实主要的就是如下参数:
-flags +ilme+ildct -alternate_scan 1 -top 0
alternate_scan使用隔行转码,top不一般没有什么要求的话頂场优先就可以了。
...