
Recherche avancée
Autres articles (37)
-
HTML5 audio and video support
13 avril 2011, parMediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
For older browsers the Flowplayer flash fallback is used.
MediaSPIP allows for media playback on major mobile platforms with the above (...) -
De l’upload à la vidéo finale [version standalone]
31 janvier 2010, parLe chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
Upload et récupération d’informations de la vidéo source
Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...) -
Support audio et vidéo HTML5
10 avril 2011MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)
Sur d’autres sites (3196)
-
Rails using stremio-ffmpeg gem to watermark a movie while uploading
16 juin 2016, par FelixI am using carrierwave to upload a movie to amazon s3 that works perfect.
Now I want to add a watermark to the movie while uploading or after uploading, I don’t know, what’s the best way ?
I tried this :
movie_controller.rb
action uploadVideomovie = FFMPEG::Movie.new(@vid.video.url)
puts "........................................"
puts movie.inspect
if @vid.saveJust to find out if the video is catched from stremio.
But then I got the error that the movie is not found, the problem is that it doesn’t look in the amazon s3 bucket, it looks on my local server
No such file or directory - the file '/uploads/tmp/1462954331-3471-8766/VID-20160424-WA0013.mp4' does not exist
What could be the solution ? or should I do this in carrierwave uploader ?
UPDATE :
When I do this after the .save action it looks at amazon s3 bucket .. but also says that the movie isn’t there. But if I call it directly in browser it’s displayed.
UPDATE Code :
#Laedt ein Video hoch
def uploadMovie
@user = User.find_by_id session[:user_id]
#Holt alle Channels für die er eine Berechtigung hat (Eingeloggter user)
@user = User.find_by_id session[:user_id]
@knowledgeproviderList = @user.knowledgeprovider
@channels = Channel.where(knowledgeprovider_id: @knowledgeproviderList.pluck(:id))
@vid = Movie.new(movies_params)
@channel = Channel.find(params[:vid][:channel_id])
@vid.channel = @channel
#Fügt dem Movie einen Tag hinzu
createTag params
createCategory params
if @vid.save
flash[:notice] = t("flash.saved")
#movie = FFMPEG::Movie.new(@vid.video.url)
#puts "........................................"
#puts movie.inspect
redirect_to :action => :add
else
redirect_to :action => :add
end
endUpdate error :
movie = FFMPEG::Movie.new(@vid.video.current_path)
options = {watermark: "mages/header.png", resolution: "640x360", watermark_filter: { position: "RT", padding_x: 10, padding_y: 10 } }
movie.transcode("movie.flv", options)Update :
Added the code in the uploader :process :watermark_movie
def watermark_movie
if self.file.path
options = {watermark: "images/header.png", resolution: "640x360", watermark_filter: { position: "RT", padding_x: 10, padding_y: 10 } }
self.model.file = FFMPEG::Movie.new(self.file.path).transcode("#{root}/#{cache_dir}/#{self.cache_id}/file.mp4", options)
end
endError :
multi_json (1.12.0) lib/multi_json/adapter.rb:19:in `load'
multi_json (1.12.0) lib/multi_json.rb:122:in `load'
streamio-ffmpeg (2.0.0) lib/ffmpeg/movie.rb:28:in `initialize'
app/uploaders/movie_uploader.rb:40:in `new'
app/uploaders/movie_uploader.rb:40:in `watermark_movie'
carrierwave (0.11.2) lib/carrierwave/uploader/processing.rb:84:in `block in process!'
carrierwave (0.11.2) lib/carrierwave/uploader/processing.rb:76:in `each'
carrierwave (0.11.2) lib/carrierwave/uploader/processing.rb:76:in `process!'
carrierwave_backgrounder (0.4.2) lib/backgrounder/delay.rb:14:in `process!'
carrierwave (0.11.2) lib/carrierwave/uploader/callbacks.rb:18:in `block in with_callbacks'
carrierwave (0.11.2) lib/carrierwave/uploader/callbacks.rb:18:in `each'
carrierwave (0.11.2) lib/carrierwave/uploader/callbacks.rb:18:in `with_callbacks'
carrierwave (0.11.2) lib/carrierwave/uploader/cache.rb:134:in `cache!'
carrierwave (0.11.2) lib/carrierwave/mount.rb:329:in `cache'
carrierwave (0.11.2) lib/carrierwave/mount.rb:163:in `video='
carrierwave (0.11.2) lib/carrierwave/orm/activerecord.rb:39:in `video='
activerecord (4.2.1) lib/active_record/attribute_assignment.rb:54:in `public_send'
activerecord (4.2.1) lib/active_record/attribute_assignment.rb:54:in `_assign_attribute'
activerecord (4.2.1) lib/active_record/attribute_assignment.rb:41:in `block in assign_attributes'
actionpack (4.2.1) lib/action_controller/metal/strong_parameters.rb:183:in `each_pair'
actionpack (4.2.1) lib/action_controller/metal/strong_parameters.rb:183:in `each_pair'
activerecord (4.2.1) lib/active_record/attribute_assignment.rb:35:in `assign_attributes'
activerecord (4.2.1) lib/active_record/core.rb:559:in `init_attributes'
activerecord (4.2.1) lib/active_record/core.rb:281:in `initialize'
activerecord (4.2.1) lib/active_record/inheritance.rb:61:in `new'
activerecord (4.2.1) lib/active_record/inheritance.rb:61:in `new'
app/controllers/movies_controller.rb:71:in `uploadMovie'
actionpack (4.2.1) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
actionpack (4.2.1) lib/abstract_controller/base.rb:198:in `process_action'
actionpack (4.2.1) lib/action_controller/metal/rendering.rb:10:in `process_action'
actionpack (4.2.1) lib/abstract_controller/callbacks.rb:20:in `block in process_action'
activesupport (4.2.1) lib/active_support/callbacks.rb:117:in `call'
activesupport (4.2.1) lib/active_support/callbacks.rb:117:in `call'
activesupport (4.2.1) lib/active_support/callbacks.rb:555:in `block (2 levels) in compile'
activesupport (4.2.1) lib/active_support/callbacks.rb:505:in `call'
activesupport (4.2.1) lib/active_support/callbacks.rb:505:in `call'
activesupport (4.2.1) lib/active_support/callbacks.rb:92:in `_run_callbacks'
activesupport (4.2.1) lib/active_support/callbacks.rb:776:in `_run_process_action_callbacks'
activesupport (4.2.1) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (4.2.1) lib/abstract_controller/callbacks.rb:19:in `process_action'
actionpack (4.2.1) lib/action_controller/metal/rescue.rb:29:in `process_action'
actionpack (4.2.1) lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
activesupport (4.2.1) lib/active_support/notifications.rb:164:in `block in instrument'
activesupport (4.2.1) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.2.1) lib/active_support/notifications.rb:164:in `instrument'
actionpack (4.2.1) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
actionpack (4.2.1) lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
activerecord (4.2.1) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
actionpack (4.2.1) lib/abstract_controller/base.rb:137:in `process'
actionview (4.2.1) lib/action_view/rendering.rb:30:in `process'
actionpack (4.2.1) lib/action_controller/metal.rb:196:in `dispatch'
actionpack (4.2.1) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
actionpack (4.2.1) lib/action_controller/metal.rb:237:in `block in action'
actionpack (4.2.1) lib/action_dispatch/routing/route_set.rb:74:in `call'
actionpack (4.2.1) lib/action_dispatch/routing/route_set.rb:74:in `dispatch'
actionpack (4.2.1) lib/action_dispatch/routing/route_set.rb:43:in `serve'
actionpack (4.2.1) lib/action_dispatch/journey/router.rb:43:in `block in serve'
actionpack (4.2.1) lib/action_dispatch/journey/router.rb:30:in `each'
actionpack (4.2.1) lib/action_dispatch/journey/router.rb:30:in `serve'
actionpack (4.2.1) lib/action_dispatch/routing/route_set.rb:819:in `call'
rack (1.6.4) lib/rack/etag.rb:24:in `call'
rack (1.6.4) lib/rack/conditionalget.rb:38:in `call'
rack (1.6.4) lib/rack/head.rb:13:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/flash.rb:260:in `call'
rack (1.6.4) lib/rack/session/abstract/id.rb:225:in `context'
rack (1.6.4) lib/rack/session/abstract/id.rb:220:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/cookies.rb:560:in `call'
activerecord (4.2.1) lib/active_record/query_cache.rb:36:in `call'
activerecord (4.2.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:649:in `call'
activerecord (4.2.1) lib/active_record/migration.rb:378:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (4.2.1) lib/active_support/callbacks.rb:88:in `call'
activesupport (4.2.1) lib/active_support/callbacks.rb:88:in `_run_callbacks'
activesupport (4.2.1) lib/active_support/callbacks.rb:776:in `_run_call_callbacks'
activesupport (4.2.1) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (4.2.1) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/reloader.rb:73:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
web-console (2.3.0) lib/web_console/middleware.rb:20:in `block in call'
web-console (2.3.0) lib/web_console/middleware.rb:18:in `catch'
web-console (2.3.0) lib/web_console/middleware.rb:18:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.2.1) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.2.1) lib/rails/rack/logger.rb:20:in `block in call'
activesupport (4.2.1) lib/active_support/tagged_logging.rb:68:in `block in tagged'
activesupport (4.2.1) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (4.2.1) lib/active_support/tagged_logging.rb:68:in `tagged'
railties (4.2.1) lib/rails/rack/logger.rb:20:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.6.4) lib/rack/methodoverride.rb:22:in `call'
rack (1.6.4) lib/rack/runtime.rb:18:in `call'
activesupport (4.2.1) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
rack (1.6.4) lib/rack/lock.rb:17:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/static.rb:113:in `call'
rack (1.6.4) lib/rack/sendfile.rb:113:in `call'
railties (4.2.1) lib/rails/engine.rb:518:in `call'
railties (4.2.1) lib/rails/application.rb:164:in `call'
rack (1.6.4) lib/rack/lock.rb:17:in `call'
rack (1.6.4) lib/rack/content_length.rb:15:in `call'
rack (1.6.4) lib/rack/handler/webrick.rb:88:in `service'
/home/felix/.rvm/rubies/ruby-2.0.0-p643/lib/ruby/2.0.0/webrick/httpserver.rb:138:in `service'
/home/felix/.rvm/rubies/ruby-2.0.0-p643/lib/ruby/2.0.0/webrick/httpserver.rb:94:in `run'
/home/felix/.rvm/rubies/ruby-2.0.0-p643/lib/ruby/2.0.0/webrick/server.rb:295:in `block in start_thread'UPDATE — Movie Uploader
# encoding: utf-8
class MovieUploader < CarrierWave::Uploader::Base
# Include RMagick or MiniMagick support:
# include CarrierWave::RMagick
include CarrierWave::MiniMagick
include CarrierWave::Video
include CarrierWave::Video::Thumbnailer
include CarrierWave::Backgrounder::Delay
require 'rubygems'
require 'streamio-ffmpeg'
# Choose what kind of storage to use for this uploader:
storage :fog
# Override the directory where uploaded files will be stored.
# This is a sensible default for uploaders that are meant to be mounted:
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
process :watermark_movie
def watermark_movie
puts "ssssssssssssssssssssssssssssssssss"
puts self.file.inspect
if self.file.path
options = {watermark: "http://felix-hohlwegler.de/holz-soft/include/designs/design13/images/header.png", resolution: "640x360", watermark_filter: { position: "RT", padding_x: 10, padding_y: 10 } }
self.model.file = FFMPEG::Movie.new(self.file.path).transcode("#{root}/#{cache_dir}/#{self.cache_id}/file.mp4", options)
end
end
version :thumb do
process thumbnail: [{format: 'png', quality: 10, size: 1200, strip: false, seek: 10, logger: Rails.logger}]
def full_filename for_file
png_name for_file, version_name
end
end
def png_name for_file, version_name
%Q{#{version_name}_#{for_file.chomp(File.extname(for_file))}.png}
end
# Add a white list of extensions which are allowed to be uploaded.
# For images you might use something like this:
def extension_white_list
%w(mov avi mkv mpeg mpeg2 mp4 3gp)
end
end -
compile ffmpeg on ec2 linux instance - no libfdk-acc available
11 mai 2022, par bycI’m compiling the
ffmpeg
on an ec2 amazon linux instance, but it threw me an errorERROR: libfdk_aac not found
.

I'm following this guide http://trac.ffmpeg.org/wiki/CompilationGuide/Centos to first install the dependencies and compile the package.


yum install autoconf automake bzip2 bzip2-devel cmake freetype-devel gcc gcc-c++ git libtool make pkgconfig zlib-devel

mkdir ~/ffmpeg_sources

cd ~/ffmpeg_sources
curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
tar xjvf ffmpeg-snapshot.tar.bz2
cd ffmpeg
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
 --prefix="$HOME/ffmpeg_build" \
 --pkg-config-flags="--static" \
 --extra-cflags="-I$HOME/ffmpeg_build/include" \
 --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
 --extra-libs=-lpthread \
 --extra-libs=-lm \
 --bindir="$HOME/bin" \
 --enable-gpl \
 --enable-libfdk_aac \
 --enable-libfreetype \
 --enable-libmp3lame \
 --enable-libopus \
 --enable-libvpx \
 --enable-libx264 \
 --enable-libx265 \
 --enable-nonfree
make
make install
hash -d ffmpeg



and this is the error message I've got


ec2-user@ip-xx-xxx-xx-xx ffmpeg]$ PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
> --prefix="$HOME/ffmpeg_build" \
> --pkg-config-flags="--static" \
> --extra-cflags="-I$HOME/ffmpeg_build/include" \
> --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
> --extra-libs=-lpthread \
> --extra-libs=-lm \
> --bindir="$HOME/bin" \
> --enable-gpl \
> --enable-libfreetype \
> --enable-libmp3lame \
> --enable-libopus \
> --enable-libvpx \
> --enable-libx264 \
> --enable-libx265 \
> --enable-nonfree

ERROR: libfdk_aac >= 3.98.3 not found



I tried installing
libfdk_aac
but there's no package found. I don't seem to come across any posts discussing this issue, or at least recently. Appreciate any pointers. thanks !

[ec2-user@ip-xx-xxx-xx-xx ffmpeg]$ sudo yum install libfdk-aac
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
No package libfdk-aac available.
Error: Nothing to do



-
'C' program to pipeout audio file to FFMPEG and generate Video file
9 mai 2017, par soflowI am attempting to write a short ’C’ program which reads in an Audio file using FFMPEG, processes that file using a ’C’ program, and then outputs a file via FFMEPG, which combines the new, modified audio together with a Video representation using the FFMPEG showwaves filter.
At present the program attempts to do the following :-
i) Read in an audio file, using pipein thorugh FFMPEG
ii) Process the audio file using a portion of the ’C’ program
iii) Pipeout the modified audio to FFMPEG, and generate a file using the ’showwaves’ filter in FFMEPG to create an MP4 file with audio and video.The following code run form the ommand line in FFMPEG generates the Audio/Video MP4 I want to create :-
ffmpeg -y -f s16le -ar 44100 -ac 1 -i 12345678.wav -i 12345678.wav -filter_complex "[0:a]showwaves=s=1280x720:mode=line:rate=25,format=yuv420p[v]" -map "[v]" -map 1:a:0 -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart 12345678.mp4
"
This code generates a processed audio file, and outputs it to a .wav file as required :-
#include
#include
#include
void main()
{
// Launch two instances of FFmpeg, one to read the original WAV
// file and another to write the modified WAV file. In each case,
// data passes between this program and FFmpeg through a pipe.
FILE *pipein;
FILE *pipeout;
pipein = popen("ffmpeg -i 12345678.wav -f s16le -ac 1 -", "r");
pipeout = popen("ffmpeg -y -f s16le -ar 44100 -ac 1 -i - out.wav", "w");
// Read, modify and write one sample at a time
int16_t sample;
int count, n=0;
while(1)
{
count = fread(&sample, 2, 1, pipein); // read one 2-byte sample
if (count != 1) break;
++n;
sample = sample * sin(n * 5.0 * 2*M_PI / 44100.0);
fwrite(&sample, 2, 1, pipeout);
}
// Close input and output pipes
pclose(pipein);
pclose(pipeout);
}(This code borrowed from ted Burke’s excellent post here)
I have made an attempt as shown below, but this is not working :-
#include
#include
#include
void main()
{
// Launch two instances of FFmpeg, one to read the original WAV
// file and another to write the modified WAV file. In each case,
// data passes between this program and FFmpeg through a pipe.
FILE *pipein;
FILE *pipeout;
pipein = popen("ffmpeg -i 12345678.wav -f s16le -ac 1 -", "r");
pipeout = popen("ffmpeg -y -f s16le -ar 44100 -ac 1 -i 12345678.wav -i
12345678.wav -filter_complex "
[0:a]showwaves=s=1280x720:mode=line:rate=25,format=yuv420p[v]" -map "[v]"
-map 1:a:0 -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -
codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart
12345678.mp4
", "w");
// Read, modify and write one sample at a time
int16_t sample;
int count, n=0;
while(1)
{
count = fread(&sample, 2, 1, pipein); // read one 2-byte sample
if (count != 1) break;
++n;
sample = sample * sin(n * 5.0 * 2*M_PI / 44100.0);
fwrite(&sample, 2, 1, pipeout);
}
// Close input and output pipes
pclose(pipein);
pclose(pipeout);
}Ideally someone can suggest an improved version of the pipeout command above - alternately another process to achieve this would be interesting
* EDIT *
Thanks to @Mulvya, the revised pipeout line is now :-
pipeout = popen("ffmpeg -y -f s16le -ar 44100 -ac 1 -i - -filter_complex "[0:a]showwaves=s=1280x720:mode=line:rate=25,format=yuv420p[v]" -map "[v]" -map 1:a:0 -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart 12345678.mp4
", "w") ;
On compiling with gcc I get the following error messages :-
avtovid2.c: In function \u2018main\u2019:
wavtovid2.c:13:83: error: expected \u2018]\u2019 before \u2018:\u2019
token
pipeout = popen("ffmpeg -y -f s16le -ar 44100 -ac 1 -i - -
filter_complex "
[0:a]showwaves=s=1280x720:mode=line:rate=25,format=yuv420p[v]" -map "[v]"
-map 1:a:0 -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -
codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart
12345678.mp4
^
wavtovid2.c:13:86: error: expected \u2018)\u2019 before
\u2018showwaves\u2019
pipeout = popen("ffmpeg -y -f s16le -ar 44100 -ac 1 -i - -
filter_complex "
[0:a]showwaves=s=1280x720:mode=line:rate=25,format=yuv420p[v]" -map "[v]"
-map 1:a:0 -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -
codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart
12345678.mp4
^
wavtovid2.c:13:98: error: invalid suffix "x720" on integer constant
pipeout = popen("ffmpeg -y -f s16le -ar 44100 -ac 1 -i - -
filter_complex "
[0:a]showwaves=s=1280x720:mode=line:rate=25,format=yuv420p[v]" -map "[v]"
-map 1:a:0 -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -
codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart
12345678.mp4
^
wavtovid2.c:13:153: warning: missing terminating " character
pipeout = popen("ffmpeg -y -f s16le -ar 44100 -ac 1 -i - -
filter_complex "
[0:a]showwaves=s=1280x720:mode=line:rate=25,format=yuv420p[v]" -map "[v]"
-map 1:a:0 -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -
codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart
12345678.mp4
^
wavtovid2.c:13:86: error: missing terminating " character
pipeout = popen("ffmpeg -y -f s16le -ar 44100 -ac 1 -i - -
filter_complex "
[0:a]showwaves=s=1280x720:mode=line:rate=25,format=yuv420p[v]" -map "[v]"
-map 1:a:0 -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -
codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart
12345678.mp4
^
wavtovid2.c:14:6: warning: missing terminating " character
", "w");
^
wavtovid2.c:14:1: error: missing terminating " character
", "w");
^
wavtovid2.c:13:21: warning: passing argument 1 of \u2018popen\u2019 makes
pointer from integer without a cast
pipeout = popen("ffmpeg -y -f s16le -ar 44100 -ac 1 -i - -
filter_complex "
[0:a]showwaves=s=1280x720:mode=line:rate=25,format=yuv420p[v]" -map "[v]"
-map 1:a:0 -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -
codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart
12345678.mp4
^
In file included from wavtovid2.c:1:0:
/usr/include/stdio.h:872:14: note: expected \u2018const char *\u2019 but
argument is of type \u2018char\u2019
extern FILE *popen (const char *__command, const char *__modes) __wur;
^
wavtovid2.c:13:15: error: too few arguments to function \u2018popen\u2019
pipeout = popen("ffmpeg -y -f s16le -ar 44100 -ac 1 -i - -
filter_complex "
[0:a]showwaves=s=1280x720:mode=line:rate=25,format=yuv420p[v]" -map "[v]"
-map 1:a:0 -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -
codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart
12345678.mp4
^
In file included from wavtovid2.c:1:0:
/usr/include/stdio.h:872:14: note: declared here
extern FILE *popen (const char *__command, const char *__modes) __wur;
^
wavtovid2.c:32:1: error: expected \u2018;\u2019 before \u2018}\u2019
token
}